pub struct CostStore {
pub agents: HashMap<String, AgentCost>,
pub tools: HashMap<String, ToolCost>,
pub sessions: Vec<SessionCostSnapshot>,
pub updated_at: Option<String>,
}Fields§
§agents: HashMap<String, AgentCost>§tools: HashMap<String, ToolCost>§sessions: Vec<SessionCostSnapshot>§updated_at: Option<String>Implementations§
Source§impl CostStore
impl CostStore
pub fn load() -> Self
pub fn record_tool_call( &mut self, agent_id: &str, agent_type: &str, tool_name: &str, input_tokens: u64, output_tokens: u64, )
pub fn save(&self) -> Result<()>
pub fn top_agents(&self, limit: usize) -> Vec<&AgentCost>
pub fn top_tools(&self, limit: usize) -> Vec<&ToolCost>
pub fn total_cost(&self) -> f64
pub fn total_tokens(&self) -> (u64, u64)
pub fn add_session_snapshot( &mut self, agent_id: &str, input: u64, output: u64, saved: u64, duration_secs: u64, )
Trait Implementations§
Source§impl<'de> Deserialize<'de> for CostStore
impl<'de> Deserialize<'de> for CostStore
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for CostStore
impl RefUnwindSafe for CostStore
impl Send for CostStore
impl Sync for CostStore
impl Unpin for CostStore
impl UnsafeUnpin for CostStore
impl UnwindSafe for CostStore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more