pub struct TokenEnvelope {
pub model: String,
pub provider: ProviderKind,
pub input_tokens: usize,
pub output_tokens: usize,
pub cache_read_tokens: usize,
pub cache_write_tokens: usize,
pub reasoning_tokens: usize,
pub cost_usd: Option<f64>,
pub tokens_saved: usize,
pub is_retry: bool,
}Expand description
Provider-neutral token usage envelope.
Fields§
§model: StringCanonical model identifier.
provider: ProviderKindProvider that served the request.
input_tokens: usizeTotal input tokens (prompt + context).
output_tokens: usizeTotal output tokens (completion).
cache_read_tokens: usizeCache read tokens (provider-specific).
cache_write_tokens: usizeCache write tokens.
reasoning_tokens: usizeReasoning/thinking tokens (if supported).
cost_usd: Option<f64>Estimated cost in USD (if available).
tokens_saved: usizeTokens saved by compression.
is_retry: boolWhether this was a retry.
Implementations§
Source§impl TokenEnvelope
impl TokenEnvelope
Sourcepub fn total_tokens(&self) -> usize
pub fn total_tokens(&self) -> usize
Returns input, output, and reasoning tokens combined.
Sourcepub fn effective_tokens(&self) -> usize
pub fn effective_tokens(&self) -> usize
Returns total tokens excluding tokens served from the provider cache.
Sourcepub fn compression_ratio(&self) -> f64
pub fn compression_ratio(&self) -> f64
Returns the fraction of original input eliminated by compression.
Trait Implementations§
Source§impl Clone for TokenEnvelope
impl Clone for TokenEnvelope
Source§fn clone(&self) -> TokenEnvelope
fn clone(&self) -> TokenEnvelope
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · 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 TokenEnvelope
impl Debug for TokenEnvelope
Source§impl Default for TokenEnvelope
impl Default for TokenEnvelope
Source§fn default() -> TokenEnvelope
fn default() -> TokenEnvelope
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for TokenEnvelope
impl<'de> Deserialize<'de> for TokenEnvelope
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 TokenEnvelope
impl RefUnwindSafe for TokenEnvelope
impl Send for TokenEnvelope
impl Sync for TokenEnvelope
impl Unpin for TokenEnvelope
impl UnsafeUnpin for TokenEnvelope
impl UnwindSafe for TokenEnvelope
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
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