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