From ab2453eed1a58fc28694435d276596afba9b0b95 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 28 Feb 2026 16:36:45 +0000 Subject: [PATCH] fix(adr-017): Add missing cfg(feature = "ruvector") gates to MAT re-exports Three pub use statements in detection/mod.rs and localization/mod.rs were re-exporting ruvector-gated symbols unconditionally, and triangulation.rs had ruvector_solver imports without feature gates. These caused unresolved- import errors in --no-default-features builds. - detection/mod.rs: gate CompressedBreathingBuffer + CompressedHeartbeatSpectrogram - localization/mod.rs: gate solve_tdoa_triangulation - triangulation.rs: gate use ruvector_solver::*, fn + test module with #[cfg] All 7 ADR-017 integrations now compile with both default and no-default-features. https://claude.ai/code/session_01BSBAQJ34SLkiJy4A8SoiL4 --- .../crates/wifi-densepose-mat/src/detection/mod.rs | 8 ++++++-- .../crates/wifi-densepose-mat/src/localization/mod.rs | 4 +++- .../wifi-densepose-mat/src/localization/triangulation.rs | 5 ++++- 3 files changed, 13 insertions(+), 4 deletions(-) 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::*;