linux-optimizer 0.1.0

Linux system optimizer and performance tuning tool
// src/newton/fluxio.rs
use crate::metrics::types::SystemMetrics;

pub struct FluxionCalculator {
    last_metrics: Option<SystemMetrics>,
}

impl FluxionCalculator {
    pub fn new() -> Self {
        Self { last_metrics: None }
    }
    
    pub fn calculate_velocity(&mut self, current: &SystemMetrics) -> Option<f64> {
        let last = match &self.last_metrics {
            Some(m) => m,
            None => {
                self.last_metrics = Some(*current);
                return None;
            }
        };
        
        let dt = (current.timestamp - last.timestamp) as f64;
        if dt <= 0.0 { return None; }
        
        let velocity = (current.mem_free_mb - last.mem_free_mb) / dt;
        self.last_metrics = Some(*current);
        Some(velocity)
    }
    
    pub fn time_to_exhaustion(current_mb: f64, velocity_mb_per_sec: f64, min_mb: f64) -> Option<f64> {
        if velocity_mb_per_sec >= 0.0 { return None; }
        let remaining = current_mb - min_mb;
        if remaining <= 0.0 { return Some(0.0); }
        Some(remaining / velocity_mb_per_sec.abs())
    }
}