memscope_rs/unified/
mod.rs

1// Unified Backend System for Memory Tracking
2// Provides intelligent routing between different tracking strategies
3// Maintains compatibility with existing core systems
4
5//! # Unified Backend System
6//!
7//! This module provides a unified backend system for intelligent memory tracking
8//! across different runtime environments without conflicting with existing core modules.
9//!
10//! ## Key Components
11//!
12//! - [`UnifiedBackend`](crate::unified::backend::UnifiedBackend) - Main orchestrator
13//! - [`EnvironmentDetector`](crate::unified::environment_detector::EnvironmentDetector) - Runtime detection
14//! - [`TrackingDispatcher`](crate::unified::tracking_dispatcher::TrackingDispatcher) - Strategy routing
15//!
16//! ## Quick Start
17//!
18/// ```rust
19/// use memscope_rs::unified::{UnifiedBackend, BackendConfig};
20///
21/// fn main() -> Result<(), Box<dyn std::error::Error>> {
22///     // Initialize unified backend
23///     let backend = UnifiedBackend::initialize(BackendConfig::default())?;
24///     Ok(())
25/// }
26/// ```
27pub mod backend;
28pub mod environment_detector;
29pub mod strategies;
30pub mod tracking_dispatcher;
31
32// Re-export main types for convenience
33pub use backend::{
34    AsyncRuntimeType, BackendConfig, BackendError, MemoryAnalysisData, MemoryStatistics,
35    RuntimeEnvironment, SessionMetadata, TrackingSession, TrackingStrategy, UnifiedBackend,
36};
37
38pub use environment_detector::{
39    detect_environment, detect_environment_detailed, DetectionConfig, DetectionMetadata,
40    DetectionMethod, EnvironmentAnalysis, EnvironmentDetector,
41};
42
43pub use tracking_dispatcher::{
44    DispatcherConfig, DispatcherMetrics, MemoryTracker, TrackerConfig, TrackerError,
45    TrackerStatistics, TrackerType, TrackingDispatcher, TrackingOperation,
46};
47
48/// Quick initialization function for unified backend
49/// Provides simple setup with default configuration
50pub fn quick_start() -> Result<UnifiedBackend, BackendError> {
51    UnifiedBackend::initialize(BackendConfig::default())
52}
53
54/// Test the unified backend system
55/// Ensures all components work together correctly
56pub fn test_unified_system() -> Result<(), BackendError> {
57    // Initialize backend
58    let mut backend = quick_start()?;
59
60    // Start tracking session
61    let session = backend.start_tracking()?;
62
63    // Collect data
64    let _data = session.collect_data()?;
65
66    // End session
67    let _final_data = session.end_session()?;
68
69    Ok(())
70}
71
72#[cfg(test)]
73mod tests {
74    use super::*;
75
76    #[test]
77    fn test_unified_backend_quick_start() {
78        let result = quick_start();
79        assert!(result.is_ok());
80    }
81
82    #[test]
83    fn test_unified_system_integration() {
84        let result = test_unified_system();
85        assert!(result.is_ok());
86    }
87}