lcpfs 2026.1.102

LCP File System - A ZFS-inspired copy-on-write filesystem for Rust
//! Data tiering and maintenance.
//!
//! Provides tiering policies, data evacuation, TRIM/discard,
//! continuous scrubbing, and cold storage archival.

/// Cold storage tiering for local-to-cloud data lifecycle management.
pub mod cold;
/// Continuous background scrubbing.
pub mod continuous_scrub;
/// VDEV health monitoring and data evacuation.
pub mod evac;
/// Core tiering engine and policies.
pub mod tier;
/// TRIM/discard operations.
pub mod trim;

// Re-export shared types from tier (canonical source)
pub use tier::LearnedThreshold;

// Re-export tier module (main tiering API)
pub use tier::{
    AccessStats, AllocationPolicy, MigrationDecision, StorageClass, TierManager, TierObservation,
    TierStats, check_migration, execute_migration, record_access, select_vdev, stats as tier_stats,
    update_epsilon as tier_update_epsilon,
};

// Re-export evac module (evacuation API) with disambiguation
pub use evac::{
    EvacStats, EvacuationEngine, EvacuationOutcome, HealthMonitor, VdevHealthObservation,
    check_health, observe_health, should_evacuate, start_evacuation, stats as evac_stats,
    update_epsilon as evac_update_epsilon,
};

// Re-export trim and continuous_scrub
pub use continuous_scrub::*;
pub use trim::*;

// Re-export cold storage module (unified local + cloud tiering)
pub use cold::{
    COLD_STORAGE_ENGINE, ColdStorageEngine, ColdStoragePolicy, ColdStorageStats, ObjectState,
    UnifiedTier, get_tier, process_lifecycle, recall_object, record_access as cold_record_access,
    register_object, stats as cold_stats, tier_breakdown,
};