pub struct TokenUsage {
pub prompt_tokens: u64,
pub cached_prompt_tokens: u64,
pub input_image_tokens: u64,
pub input_audio_tokens: u64,
pub content_tokens: u64,
pub reasoning_tokens: u64,
pub tool_call_tokens: u64,
pub undeterminable_tokens: u64,
}Fields§
§prompt_tokens: u64§cached_prompt_tokens: u64§input_image_tokens: u64§input_audio_tokens: u64§content_tokens: u64§reasoning_tokens: u64§tool_call_tokens: u64§undeterminable_tokens: u64Implementations§
Source§impl TokenUsage
impl TokenUsage
pub const fn new() -> TokenUsage
pub const fn record_prompt_tokens(&mut self, count: u64)
Sourcepub const fn record_cached_prompt_tokens(
&mut self,
count: u64,
) -> Result<(), TokenUsageError>
pub const fn record_cached_prompt_tokens( &mut self, count: u64, ) -> Result<(), TokenUsageError>
§Errors
Returns TokenUsageError::CachedExceedsPrompt when the running cached
total would exceed Self::prompt_tokens.
pub const fn record_input_image_tokens(&mut self, count: u64)
pub const fn record_input_audio_tokens(&mut self, count: u64)
pub const fn record_content_token(&mut self)
pub const fn record_reasoning_token(&mut self)
pub const fn record_tool_call_token(&mut self)
pub const fn record_undeterminable_token(&mut self)
pub const fn completion_tokens(&self) -> u64
pub const fn total_tokens(&self) -> u64
Trait Implementations§
Source§impl Add<&TokenUsage> for TokenUsage
impl Add<&TokenUsage> for TokenUsage
Source§type Output = TokenUsage
type Output = TokenUsage
The resulting type after applying the
+ operator.Source§fn add(self, other: &TokenUsage) -> TokenUsage
fn add(self, other: &TokenUsage) -> TokenUsage
Performs the
+ operation. Read moreSource§impl Add for TokenUsage
impl Add for TokenUsage
Source§type Output = TokenUsage
type Output = TokenUsage
The resulting type after applying the
+ operator.Source§fn add(self, other: TokenUsage) -> TokenUsage
fn add(self, other: TokenUsage) -> TokenUsage
Performs the
+ operation. Read moreSource§impl AddAssign<&TokenUsage> for TokenUsage
impl AddAssign<&TokenUsage> for TokenUsage
Source§fn add_assign(&mut self, other: &TokenUsage)
fn add_assign(&mut self, other: &TokenUsage)
Performs the
+= operation. Read moreSource§impl AddAssign for TokenUsage
impl AddAssign for TokenUsage
Source§fn add_assign(&mut self, other: TokenUsage)
fn add_assign(&mut self, other: TokenUsage)
Performs the
+= operation. Read moreSource§impl Clone for TokenUsage
impl Clone for TokenUsage
Source§fn clone(&self) -> TokenUsage
fn clone(&self) -> TokenUsage
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 TokenUsage
impl Debug for TokenUsage
Source§impl Default for TokenUsage
impl Default for TokenUsage
Source§fn default() -> TokenUsage
fn default() -> TokenUsage
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for TokenUsage
impl<'de> Deserialize<'de> for TokenUsage
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<TokenUsage, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<TokenUsage, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for TokenUsage
impl PartialEq for TokenUsage
Source§fn eq(&self, other: &TokenUsage) -> bool
fn eq(&self, other: &TokenUsage) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for TokenUsage
impl Serialize for TokenUsage
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl<'usage> Sum<&'usage TokenUsage> for TokenUsage
impl<'usage> Sum<&'usage TokenUsage> for TokenUsage
Source§fn sum<TIter>(iter: TIter) -> TokenUsagewhere
TIter: Iterator<Item = &'usage TokenUsage>,
fn sum<TIter>(iter: TIter) -> TokenUsagewhere
TIter: Iterator<Item = &'usage TokenUsage>,
Takes an iterator and generates
Self from the elements by “summing up”
the items.Source§impl Sum for TokenUsage
impl Sum for TokenUsage
Source§fn sum<TIter>(iter: TIter) -> TokenUsagewhere
TIter: Iterator<Item = TokenUsage>,
fn sum<TIter>(iter: TIter) -> TokenUsagewhere
TIter: Iterator<Item = TokenUsage>,
Takes an iterator and generates
Self from the elements by “summing up”
the items.impl Copy for TokenUsage
impl Eq for TokenUsage
impl StructuralPartialEq for TokenUsage
Auto Trait Implementations§
impl Freeze for TokenUsage
impl RefUnwindSafe for TokenUsage
impl Send for TokenUsage
impl Sync for TokenUsage
impl Unpin for TokenUsage
impl UnsafeUnpin for TokenUsage
impl UnwindSafe for TokenUsage
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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