memscope_rs/core/
mod.rs

1//! Core memory tracking functionality
2//!
3//! This module contains the fundamental components for memory tracking:
4//! - Memory tracker implementation
5//! - Custom allocator
6//! - Type definitions
7//! - Scope tracking
8
9pub mod adaptive_hashmap;
10pub mod allocation_adapter;
11pub mod allocator;
12pub mod atomic_stats;
13pub mod bounded_memory_stats;
14pub mod call_stack_normalizer;
15pub mod clone_monitor;
16pub mod clone_optimizer;
17pub mod clone_utils;
18pub mod comprehensive_data_deduplicator;
19pub mod edge_case_handler;
20pub mod enhanced_call_stack_normalizer;
21pub mod enhanced_pointer_extractor;
22pub mod enhanced_type_inference;
23pub mod error;
24pub mod error_adapter;
25pub mod fast_data_deduplicator;
26pub mod integration_validator;
27pub mod lifecycle_summary;
28pub mod optimized_locks;
29pub mod optimized_tracker;
30pub mod optimized_types;
31pub mod ownership_history;
32pub mod safe_operations;
33pub mod scope_tracker;
34pub mod sharded_locks;
35pub mod shared_types;
36pub mod simple_mutex;
37pub mod smart_optimization;
38pub mod string_pool;
39pub mod string_pool_monitor;
40pub mod targeted_optimizations;
41pub mod test_optimized_locks;
42pub mod thread_registry;
43pub mod threshold_batch_processor;
44pub mod tracker;
45
46/// Type definitions
47pub mod types;
48pub mod unwrap_safe;
49
50// Re-export key types for easier access
51pub use allocator::TrackingAllocator;
52pub use tracker::{get_tracker, MemoryTracker};
53pub use types::{AllocationInfo, TrackingError, TrackingResult};
54
55// Re-export the new unified error system
56pub use error::{
57    DefaultErrorRecovery, ErrorRecovery, ErrorSeverity, MemScopeError, MemoryOperation,
58    RecoveryAction, Result as MemScopeResult, SystemErrorType,
59};
60pub use error_adapter::{
61    adapt_result, from_tracking_error, to_tracking_error, to_tracking_result, DefaultErrorAdapter,
62    ErrorAdapter,
63};
64
65// Re-export safe unwrap utilities
66pub use unwrap_safe::{get_unwrap_stats, update_unwrap_stats, UnwrapSafe, UnwrapStats};
67
68// Re-export string pool functionality
69pub use string_pool::{get_string_pool_stats, intern_string, StringPoolStats};
70
71// Re-export string pool monitoring
72pub use string_pool_monitor::{
73    get_string_pool_monitor_stats, MemoryEfficiencyMetrics, OptimizationRecommendation,
74    PerformanceMetrics, StringPoolMonitorStats, UsagePatterns,
75};
76
77// Re-export optimized types
78pub use optimized_types::OptimizedAllocationInfo;
79
80// Re-export atomic statistics
81pub use atomic_stats::{
82    AtomicMemoryStats, AtomicPerformanceCounters, MemoryStatsSnapshot, PerformanceSnapshot,
83    SimpleMemoryStats,
84};
85
86// Re-export optimized locks
87pub use optimized_locks::{LockFreeCounter, OptimizedMutex, OptimizedRwLock};
88
89// Re-export sharded locks
90pub use sharded_locks::{ShardStats, ShardedMutex, ShardedRwLock};
91
92// Re-export adaptive hashmap
93pub use adaptive_hashmap::AdaptiveHashMap;
94
95// Re-export simple mutex
96pub use simple_mutex::SimpleMutex;
97
98// Re-export smart optimization tools
99pub use smart_optimization::{SmartClone, SmartMutex, SmartStats};
100
101// Re-export targeted optimizations
102pub use targeted_optimizations::{efficient_string_concat, BatchProcessor, FastStatsCollector};
103
104// Re-export threshold batch processor
105pub use threshold_batch_processor::{BatchConfig, ProcessingStats, ThresholdBatchProcessor};
106
107// Re-export allocation adapter for compatibility
108pub use allocation_adapter::{AllocationCollection, AllocationInfoAdapter, CollectionMemoryStats};
109
110// Re-export clone optimization functionality
111pub use clone_monitor::{get_clone_stats, get_optimization_recommendations, CloneMonitorStats};
112pub use clone_optimizer::{CloneInfo, CloneOptimizer, CloneStats};
113pub use clone_utils::{clone_shared_allocation, optimized_clone, share_allocation_info};
114pub use optimized_tracker::OptimizedMemoryTracker;
115pub use shared_types::{SharedAllocationCollection, SharedAllocationInfo, SharedConfig};
116
117// Re-export bounded memory stats functionality
118pub use bounded_memory_stats::{
119    AllocationHistoryManager, AllocationSummary, BoundedMemoryStats, BoundedStatsConfig,
120    HistoricalSummary, MemoryUsageStats,
121};
122
123// Re-export enhanced pointer extractor functionality
124pub use enhanced_pointer_extractor::{
125    EnhancedPointerExtractor, EnhancedTrackable, PointerInfo, PointerStatistics, SyntheticReason,
126    TypeCategory, TypeInfo,
127};
128
129// Re-export enhanced type inference functionality
130pub use enhanced_type_inference::{
131    AllocationContext, InferenceMethod, InferenceStatistics, InferredType, TypeConfidence,
132    TypeInferenceEngine, TypeSignature,
133};
134
135// Re-export the new dual-mode tracking functionality
136pub use tracker::configure_tracking_strategy;
137
138// Re-export unified backend system
139pub use crate::unified::{
140    detect_environment, detect_environment_detailed, quick_start as unified_quick_start,
141    test_unified_system, AsyncRuntimeType, BackendConfig, BackendError, DetectionConfig,
142    DetectionMetadata, DetectionMethod, DispatcherConfig, DispatcherMetrics, EnvironmentAnalysis,
143    EnvironmentDetector, MemoryAnalysisData, MemoryStatistics,
144    MemoryTracker as UnifiedMemoryTracker, RuntimeEnvironment, SessionMetadata, TrackerConfig,
145    TrackerError, TrackerStatistics, TrackerType, TrackingDispatcher, TrackingOperation,
146    TrackingSession, TrackingStrategy, UnifiedBackend,
147};
148
149// Re-export ownership history functionality
150pub use ownership_history::{
151    ActiveBorrow, BorrowInfo, BorrowType, CloneInfo as OwnershipCloneInfo, HistoryConfig,
152    OwnershipEvent, OwnershipEventDetails, OwnershipEventType, OwnershipHistoryExport,
153    OwnershipHistoryRecorder, OwnershipStatistics, OwnershipSummary, RefCountInfo,
154};
155
156// Re-export lifecycle summary functionality
157pub use lifecycle_summary::{
158    AllocationLifecycleSummary, ExportMetadata, LifecycleEvent, LifecycleEventSummary,
159    LifecycleExportData, LifecyclePattern, LifecycleSummaryGenerator, SummaryConfig, VariableGroup,
160};
161
162// Re-export call stack normalizer functionality
163pub use call_stack_normalizer::{
164    get_global_call_stack_normalizer, initialize_global_call_stack_normalizer, CallStackId,
165    CallStackNormalizer, CallStackRef, NormalizedCallStack, NormalizerConfig, NormalizerStats,
166};
167
168#[cfg(test)]
169pub use unwrap_safe::get_unwrap_stats_mut;