Struct Usage
Generated from cargo doc --no-deps -p nemo-relay-builtins -p nemo-relay-diagnostics -p nemo-relay-logging -p nemo-relay-plugin-host -p nemo-relay-codecs -p nemo-relay -p nemo-relay-runtime -p nemo-relay-model-pricing -p nemo-relay-resource-metrics -p nemo-relay-observability -p nemo-relay-adaptive -p nemo-relay-pii-redaction -p nemo-relay-ffi -p nemo-relay-types -p nemo-relay-plugin -p nemo-relay-worker-proto -p nemo-relay-worker.
pub struct Usage {
pub prompt_tokens: Option<u64>,
pub completion_tokens: Option<u64>,
pub total_tokens: Option<u64>,
pub cache_read_tokens: Option<u64>,
pub cache_write_tokens: Option<Vec<CacheWriteTokenCounts>>,
pub uncached_input_tokens: Option<u64>,
pub cost: Option<CostEstimate>,
}
Token usage statistics from an LLM API response.
All fields are Option<u64> because not every provider supplies every field. For example, cache token counts are only available from providers that support prompt caching.
Fields
prompt_tokens: Option<u64>
Tokens consumed by the prompt/input.
completion_tokens: Option<u64>
Tokens generated in the completion/output.
total_tokens: Option<u64>
Total tokens (prompt + completion).
cache_read_tokens: Option<u64>
Tokens served from prompt cache (read).
cache_write_tokens: Option<Vec<CacheWriteTokenCounts>>
Tokens written to prompt cache, one entry per cache duration.
Use Usage::cache_write_total for the combined count.
uncached_input_tokens: Option<u64>
Input tokens that were neither served from nor written to a provider prompt cache.
This is present only when the provider’s usage contract makes the split authoritative; its absence must not be interpreted as zero.
cost: Option<CostEstimate>
Optional cost reported by provider data or estimated from Relay model pricing.
Implementations
impl Usage
impl Usage
cache_write_total
pub fn cache_write_total(&self) -> Option<u64>
Total prompt-cache write tokens across every cache duration.
Trait Implementations
impl Clone for Usage
impl Clone for Usage
clone
fn clone(&self) -> Usage
clone_from
fn clone_from(&mut self, source: &Self)
impl Debug for Usage
impl Debug for Usage
fmt
fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>
impl Default for Usage
impl Default for Usage
default
fn default() -> Usage
impl<'de> Deserialize<'de> for Usage
impl<'de> Deserialize<'de> for Usage
deserialize
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Usage, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl PartialEq for Usage
impl PartialEq for Usage
eq
fn eq(&self, other: &Usage) -> bool
ne
fn ne(&self, other: &Rhs) -> bool
impl Serialize for Usage
impl Serialize for Usage
serialize
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl WireValue<Box<Usage>> for Usage
impl WireValue<Box<Usage>> for Usage
to_wire
fn to_wire(self) -> Result<Box<Usage>, ConversionError>
from_wire
fn from_wire(value: Box<Usage>) -> Result<Usage, ConversionError>
impl WireValue<Usage> for Usage
impl WireValue<Usage> for Usage
to_wire
fn to_wire(self) -> Result<Usage, ConversionError>
from_wire
fn from_wire(value: Usage) -> Result<Usage, ConversionError>
impl StructuralPartialEq for Usage
impl StructuralPartialEq for Usage