//! System Profiling Module
//!
//! This module provides comprehensive system profiling and benchmarking capabilities
//! for network, disk I/O, memory, and CPU performance.

pub mod benchmark_builder;
pub mod config;
pub mod cpu;
pub mod disk;
pub mod error;
pub mod logging;
pub mod memory;
pub mod monitor;
pub mod network;
pub mod progress;
pub mod report;
pub mod rhai;
pub mod rhai_error_handling;
pub mod sanity;
pub mod system;
pub mod system_tests;
pub mod tempfile;
pub mod types;
pub mod validation;

// Re-export all public functions and types following OS module pattern
pub use benchmark_builder::*;
pub use config::*;
pub use cpu::*;
pub use disk::{
    AccessPattern, DiskBenchmarkResult, DiskLatencyResult, DiskProfiler, IOPSResult, RandomResult,
    SequentialResult, measure_iops, measure_random_read, measure_random_write,
    measure_sequential_read, measure_sequential_write, run_disk_benchmark, test_disk_latency,
};
pub use memory::{
    CacheResult, MemoryBandwidthResult, MemoryProfiler, MemoryUsageProfile, NumaResult,
    StressTestResult, measure_cache_performance, measure_memory_bandwidth, profile_memory_usage,
    run_memory_stress_test, test_memory_latency, test_numa_bandwidth,
};
pub use monitor::*;
pub use network::{
    BandwidthResult, IperfClient, IperfConfig, IperfResult, JitterResult, LatencyResult, Protocol,
    ThroughputResult, measure_bandwidth, measure_latency, run_jitter_test, test_udp_throughput,
};
pub use progress::*;
pub use report::*;
pub use rhai_error_handling::*;
pub use system::*;
pub use tempfile::*;
pub use types::*;
pub use validation::*;

// Rhai integration module
#[cfg(feature = "rhai")]
pub use rhai::register_profiling_module;
