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 threshold_batch_processor;
43pub mod tracker;
44
45/// Type definitions
46pub mod types;
47pub mod unwrap_safe;
48
49// Re-export key types for easier access
50pub use allocator::TrackingAllocator;
51pub use tracker::{get_global_tracker, MemoryTracker};
52pub use types::{AllocationInfo, TrackingError, TrackingResult};
53
54// Re-export the new unified error system
55pub use error::{
56    DefaultErrorRecovery, ErrorRecovery, ErrorSeverity, MemScopeError, MemoryOperation,
57    RecoveryAction, Result as MemScopeResult, SystemErrorType,
58};
59pub use error_adapter::{
60    adapt_result, from_tracking_error, to_tracking_error, to_tracking_result, DefaultErrorAdapter,
61    ErrorAdapter,
62};
63
64// Re-export safe unwrap utilities
65pub use unwrap_safe::{get_unwrap_stats, update_unwrap_stats, UnwrapSafe, UnwrapStats};
66
67// Re-export string pool functionality
68pub use string_pool::{get_string_pool_stats, intern_string, StringPoolStats};
69
70// Re-export string pool monitoring
71pub use string_pool_monitor::{
72    get_string_pool_monitor_stats, MemoryEfficiencyMetrics, OptimizationRecommendation,
73    PerformanceMetrics, StringPoolMonitorStats, UsagePatterns,
74};
75
76// Re-export optimized types
77pub use optimized_types::OptimizedAllocationInfo;
78
79// Re-export atomic statistics
80pub use atomic_stats::{
81    AtomicMemoryStats, AtomicPerformanceCounters, MemoryStatsSnapshot, PerformanceSnapshot,
82    SimpleMemoryStats,
83};
84
85// Re-export optimized locks
86pub use optimized_locks::{LockFreeCounter, OptimizedMutex, OptimizedRwLock};
87
88// Re-export sharded locks
89pub use sharded_locks::{ShardStats, ShardedMutex, ShardedRwLock};
90
91// Re-export adaptive hashmap
92pub use adaptive_hashmap::AdaptiveHashMap;
93
94// Re-export simple mutex
95pub use simple_mutex::SimpleMutex;
96
97// Re-export smart optimization tools
98pub use smart_optimization::{SmartClone, SmartMutex, SmartStats};
99
100// Re-export targeted optimizations
101pub use targeted_optimizations::{efficient_string_concat, BatchProcessor, FastStatsCollector};
102
103// Re-export threshold batch processor
104pub use threshold_batch_processor::{BatchConfig, ProcessingStats, ThresholdBatchProcessor};
105
106// Re-export allocation adapter for compatibility
107pub use allocation_adapter::{AllocationCollection, AllocationInfoAdapter, CollectionMemoryStats};
108
109// Re-export clone optimization functionality
110pub use clone_monitor::{get_clone_stats, get_optimization_recommendations, CloneMonitorStats};
111pub use clone_optimizer::{CloneInfo, CloneOptimizer, CloneStats};
112pub use clone_utils::{clone_shared_allocation, optimized_clone, share_allocation_info};
113pub use optimized_tracker::OptimizedMemoryTracker;
114pub use shared_types::{SharedAllocationCollection, SharedAllocationInfo, SharedConfig};
115
116// Re-export bounded memory stats functionality
117pub use bounded_memory_stats::{
118    AllocationHistoryManager, AllocationSummary, BoundedMemoryStats, BoundedStatsConfig,
119    HistoricalSummary, MemoryUsageStats,
120};
121
122// Re-export enhanced pointer extractor functionality
123pub use enhanced_pointer_extractor::{
124    EnhancedPointerExtractor, EnhancedTrackable, PointerInfo, PointerStatistics, SyntheticReason,
125    TypeCategory, TypeInfo,
126};
127
128// Re-export enhanced type inference functionality
129pub use enhanced_type_inference::{
130    AllocationContext, InferenceMethod, InferenceStatistics, InferredType, TypeConfidence,
131    TypeInferenceEngine, TypeSignature,
132};
133
134// Re-export ownership history functionality
135pub use ownership_history::{
136    ActiveBorrow, BorrowInfo, BorrowType, CloneInfo as OwnershipCloneInfo, HistoryConfig,
137    OwnershipEvent, OwnershipEventDetails, OwnershipEventType, OwnershipHistoryExport,
138    OwnershipHistoryRecorder, OwnershipStatistics, OwnershipSummary, RefCountInfo,
139};
140
141// Re-export lifecycle summary functionality
142pub use lifecycle_summary::{
143    AllocationLifecycleSummary, ExportMetadata, LifecycleEvent, LifecycleEventSummary,
144    LifecycleExportData, LifecyclePattern, LifecycleSummaryGenerator, SummaryConfig, VariableGroup,
145};
146
147// Re-export call stack normalizer functionality
148pub use call_stack_normalizer::{
149    get_global_call_stack_normalizer, initialize_global_call_stack_normalizer, CallStackId,
150    CallStackNormalizer, CallStackRef, NormalizedCallStack, NormalizerConfig, NormalizerStats,
151};
152
153#[cfg(test)]
154pub use unwrap_safe::get_unwrap_stats_mut;