use super::{ResidualClass, ResidualSample, ResidualStream};
pub fn push_hit_ratio(
stream: &mut ResidualStream,
t: f64,
cache_id: &str,
expected: f64,
observed: f64,
) {
let drop = expected - observed;
stream.push(ResidualSample::new(t, ResidualClass::CacheIo, drop).with_channel(cache_id));
}
pub fn push_io_amplification(
stream: &mut ResidualStream,
t: f64,
file_id: &str,
observed_seconds: f64,
baseline_seconds: f64,
) {
let amp = if baseline_seconds > 0.0 {
observed_seconds / baseline_seconds - 1.0
} else {
0.0
};
stream.push(
ResidualSample::new(t, ResidualClass::CacheIo, amp).with_channel(format!("{file_id}#io")),
);
}