diff --git a/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/detection/mod.rs b/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/detection/mod.rs index f6fd15c..99b0ba0 100644 --- a/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/detection/mod.rs +++ b/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/detection/mod.rs @@ -12,8 +12,12 @@ mod heartbeat; mod movement; mod pipeline; -pub use breathing::{BreathingDetector, BreathingDetectorConfig, CompressedBreathingBuffer}; +pub use breathing::{BreathingDetector, BreathingDetectorConfig}; +#[cfg(feature = "ruvector")] +pub use breathing::CompressedBreathingBuffer; pub use ensemble::{EnsembleClassifier, EnsembleConfig, EnsembleResult, SignalConfidences}; -pub use heartbeat::{HeartbeatDetector, HeartbeatDetectorConfig, CompressedHeartbeatSpectrogram}; +pub use heartbeat::{HeartbeatDetector, HeartbeatDetectorConfig}; +#[cfg(feature = "ruvector")] +pub use heartbeat::CompressedHeartbeatSpectrogram; pub use movement::{MovementClassifier, MovementClassifierConfig}; pub use pipeline::{DetectionPipeline, DetectionConfig, VitalSignsDetector, CsiDataBuffer}; diff --git a/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/mod.rs b/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/mod.rs index 4d0bb13..552e5b3 100644 --- a/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/mod.rs +++ b/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/mod.rs @@ -9,6 +9,8 @@ mod triangulation; mod depth; mod fusion; -pub use triangulation::{Triangulator, TriangulationConfig, solve_tdoa_triangulation}; +pub use triangulation::{Triangulator, TriangulationConfig}; +#[cfg(feature = "ruvector")] +pub use triangulation::solve_tdoa_triangulation; pub use depth::{DepthEstimator, DepthEstimatorConfig}; pub use fusion::{PositionFuser, LocalizationService}; diff --git a/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/triangulation.rs b/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/triangulation.rs index b4f520d..34e2c6b 100644 --- a/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/triangulation.rs +++ b/rust-port/wifi-densepose-rs/crates/wifi-densepose-mat/src/localization/triangulation.rs @@ -380,7 +380,9 @@ mod tests { // Integration 5: Multi-AP TDoA triangulation via NeumannSolver // --------------------------------------------------------------------------- +#[cfg(feature = "ruvector")] use ruvector_solver::neumann::NeumannSolver; +#[cfg(feature = "ruvector")] use ruvector_solver::types::CsrMatrix; /// Solve multi-AP TDoA survivor localization using NeumannSolver. @@ -396,6 +398,7 @@ use ruvector_solver::types::CsrMatrix; /// /// # Returns /// Some((x, y)) estimated survivor position in metres, or None if underdetermined +#[cfg(feature = "ruvector")] pub fn solve_tdoa_triangulation( tdoa_measurements: &[(usize, usize, f32)], ap_positions: &[(f32, f32)], @@ -466,7 +469,7 @@ pub fn solve_tdoa_triangulation( Some((x_sol + x_ref, y_sol + y_ref)) } -#[cfg(test)] +#[cfg(all(test, feature = "ruvector"))] mod triangulation_tests { use super::*;