pub struct UsageRecordV1 {
pub version: u32,
pub request_id: String,
pub recorded_at: u64,
pub provider: String,
pub model: String,
pub session_id: Option<String>,
pub session_path: Option<String>,
pub assistant_message_id: Option<String>,
pub turn_index: Option<u32>,
pub usage: UsageTokens,
pub cost: UsageCostBreakdown,
pub source: UsageRecordSource,
}Expand description
Canonical usage record stored inside SessionEntry::Custom.
This schema is intentionally small and versioned. It captures stable request identity, attribution for reporting, raw tokens, and stored cost so later reporting doesn’t need to recompute historical values from possibly changed model pricing tables.
Fields§
§version: u32§request_id: String§recorded_at: u64§provider: String§model: String§session_id: Option<String>§session_path: Option<String>§assistant_message_id: Option<String>§turn_index: Option<u32>§usage: UsageTokens§cost: UsageCostBreakdown§source: UsageRecordSourceImplementations§
Source§impl UsageRecordV1
impl UsageRecordV1
pub fn new( request_id: impl Into<String>, recorded_at: u64, provider: impl Into<String>, model: impl Into<String>, usage: impl Into<UsageTokens>, cost: impl Into<UsageCostBreakdown>, ) -> Self
Sourcepub fn dedupe_key(&self) -> UsageDedupeKey
pub fn dedupe_key(&self) -> UsageDedupeKey
Stable dedupe identity for global usage rollups.
pub fn usage_value(&self) -> Usage
pub fn cost_value(&self) -> Cost
pub fn with_session_context( self, session_id: Option<String>, session_path: Option<String>, assistant_message_id: Option<String>, turn_index: Option<u32>, ) -> Self
pub fn into_custom_data(self) -> Result<Value>
pub fn from_custom_data(value: Value) -> Result<Self>
Trait Implementations§
Source§impl Clone for UsageRecordV1
impl Clone for UsageRecordV1
Source§fn clone(&self) -> UsageRecordV1
fn clone(&self) -> UsageRecordV1
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for UsageRecordV1
impl Debug for UsageRecordV1
Source§impl<'de> Deserialize<'de> for UsageRecordV1
impl<'de> Deserialize<'de> for UsageRecordV1
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
Source§impl PartialEq for UsageRecordV1
impl PartialEq for UsageRecordV1
Source§impl Serialize for UsageRecordV1
impl Serialize for UsageRecordV1
impl StructuralPartialEq for UsageRecordV1
Auto Trait Implementations§
impl Freeze for UsageRecordV1
impl RefUnwindSafe for UsageRecordV1
impl Send for UsageRecordV1
impl Sync for UsageRecordV1
impl Unpin for UsageRecordV1
impl UnsafeUnpin for UsageRecordV1
impl UnwindSafe for UsageRecordV1
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