#[non_exhaustive]pub struct UsageDimensions {
pub input_tokens: u64,
pub output_tokens: u64,
pub wall_ms: Option<u64>,
pub custom: BTreeMap<String, u64>,
pub dedup_key: Option<String>,
}Expand description
Usage report for report_usage. Mirrors today’s
ff_report_usage_and_check ARGV: token-counts, wall-time, custom
dimensions.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.input_tokens: u64Input tokens consumed (LLM-shaped usage). 0 if not applicable.
output_tokens: u64Output tokens produced (LLM-shaped usage).
wall_ms: Option<u64>Wall-clock duration, in milliseconds, attributable to this
report. None for pure token-count reports.
custom: BTreeMap<String, u64>Arbitrary caller-defined dimensions. Use BTreeMap for stable
iteration order (important for dedup-key derivation on some
budget schemes).
dedup_key: Option<String>Optional caller-supplied idempotency key. When set, the backend
rejects a repeat application of the same key with
ReportUsageResult::AlreadyApplied rather than double-counting
(RFC-012 §R7.4; Lua ff_report_usage_and_check threads this as
the trailing ARGV). None / empty string disables dedup.
Implementations§
Source§impl UsageDimensions
impl UsageDimensions
Sourcepub fn new() -> Self
pub fn new() -> Self
Create an empty usage report (all dimensions zero / None).
Provided for external-crate consumers: UsageDimensions is
#[non_exhaustive], so struct-literal and functional-update
construction are unavailable across crate boundaries. Start
from new() and chain with_* setters to build a report.
Sourcepub fn with_input_tokens(self, tokens: u64) -> Self
pub fn with_input_tokens(self, tokens: u64) -> Self
Set the input-token count dimension. Consumes and returns
self for chaining.
Sourcepub fn with_output_tokens(self, tokens: u64) -> Self
pub fn with_output_tokens(self, tokens: u64) -> Self
Set the output-token count dimension. Consumes and returns
self for chaining.
Sourcepub fn with_wall_ms(self, ms: u64) -> Self
pub fn with_wall_ms(self, ms: u64) -> Self
Set the wall-clock duration dimension, in milliseconds.
Consumes and returns self for chaining.
Sourcepub fn with_dedup_key(self, key: impl Into<String>) -> Self
pub fn with_dedup_key(self, key: impl Into<String>) -> Self
Set the optional caller-supplied idempotency key. When set,
the backend rejects a repeat application of the same key with
ReportUsageResult::AlreadyApplied rather than double-counting
(RFC-012 §R7.4). Consumes and returns self for chaining.
Trait Implementations§
Source§impl Clone for UsageDimensions
impl Clone for UsageDimensions
Source§fn clone(&self) -> UsageDimensions
fn clone(&self) -> UsageDimensions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more