use crate::output::NormalizedUsageSnapshot;
pub(crate) use crate::sessions::usage::{
SessionUsageLedger, SessionUsageRecord, USAGE_ACTIVITY_PREFIX,
};
impl super::state::MissionControlState {
pub(crate) fn session_usage_totals(&self) -> NormalizedUsageSnapshot {
let mut usage = self.session_usage.totals();
usage.cache_known &= self.session_usage_is_complete();
usage
}
pub(crate) fn session_usage_is_complete(&self) -> bool {
self.session_usage.is_complete()
}
pub(crate) fn session_cache_percent(&self) -> Option<u64> {
let usage = self.session_usage_totals();
if usage.cache_known && usage.effective_input > 0 {
Some(
(u128::from(usage.cache_read) * 100 / u128::from(usage.effective_input)).min(100)
as u64,
)
} else {
self.last_known_session_cache_percent
}
}
pub(crate) fn refresh_session_cache_percent(&mut self) {
self.last_known_session_cache_percent = self.session_cache_percent();
}
}
pub(crate) use crate::sessions::usage_recorder::SessionUsageRecorder;