Skip to navigation

Struct Usage

View as Markdown

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