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
This commit is contained in:
Claude
2026-02-28 16:36:45 +00:00
parent 18170d7daf
commit ab2453eed1
3 changed files with 13 additions and 4 deletions

View File

@@ -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};

View File

@@ -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};

View File

@@ -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::*;