use std::time::Duration;
use claudius::Usage as ClaudiusUsage;
#[derive(Debug, Clone, Default, serde::Serialize, serde::Deserialize)]
pub struct Usage {
pub claudius_usage: Option<ClaudiusUsage>,
pub wall_clock_time: Duration,
pub iterations: usize,
}
impl Usage {
pub fn new() -> Self {
Self::default()
}
pub fn add_claudius_usage(&mut self, usage: ClaudiusUsage) {
self.claudius_usage = Some(match self.claudius_usage {
Some(existing) => existing + usage,
None => usage,
});
}
pub fn increment_iterations(&mut self) {
self.iterations += 1;
}
pub fn set_wall_clock_time(&mut self, duration: Duration) {
self.wall_clock_time = duration;
}
}