pub struct EconomicsRequest {
pub model: String,
pub input_tokens: u64,
pub cache_creation_input_tokens: u64,
pub cache_read_input_tokens: u64,
pub output_tokens: u64,
pub thinking_tokens: Option<u64>,
}Expand description
The token usage of one provider request, provider-native field names kept.
A request is one model call. Claude Code writes one event per content block of a message and repeats the message’s usage on each, so a request is identified by its message id and counted once.
use majordomus_cli::economics::model::EconomicsRequest;
let r: EconomicsRequest = serde_json::from_value(serde_json::json!({
"model": "claude-sonnet-5", "input_tokens": 12, "cache_creation_input_tokens": 3000,
"cache_read_input_tokens": 18000, "output_tokens": 400
}))
.unwrap();
assert_eq!(r.input_tokens + r.cache_creation_input_tokens + r.cache_read_input_tokens, 21012);
assert!(serde_json::to_value(&r).unwrap().get("thinking_tokens").is_none(), "unreported");Fields§
§model: StringThe model that answered.
input_tokens: u64input_tokens: input not read from or written to the cache.
cache_creation_input_tokens: u64cache_creation_input_tokens: input written to the cache.
cache_read_input_tokens: u64cache_read_input_tokens: input read from the cache.
output_tokens: u64output_tokens, reasoning included.
thinking_tokens: Option<u64>output_tokens_details.thinking_tokens, when the provider reported it.
Trait Implementations§
Source§impl Clone for EconomicsRequest
impl Clone for EconomicsRequest
Source§fn clone(&self) -> EconomicsRequest
fn clone(&self) -> EconomicsRequest
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 EconomicsRequest
impl Debug for EconomicsRequest
Source§impl<'de> Deserialize<'de> for EconomicsRequest
impl<'de> Deserialize<'de> for EconomicsRequest
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
impl Eq for EconomicsRequest
Source§impl JsonSchema for EconomicsRequest
impl JsonSchema for EconomicsRequest
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Returns a string that uniquely identifies the schema produced by this type. Read more
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Generates a JSON Schema for this type. Read more
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
Whether JSON Schemas generated for this type should be included directly in parent schemas,
rather than being re-used where possible using the
$ref keyword. Read moreSource§impl PartialEq for EconomicsRequest
impl PartialEq for EconomicsRequest
Source§fn eq(&self, other: &EconomicsRequest) -> bool
fn eq(&self, other: &EconomicsRequest) -> bool
Tests for
self and other values to be equal, and is used by ==.Source§impl Serialize for EconomicsRequest
impl Serialize for EconomicsRequest
impl StructuralPartialEq for EconomicsRequest
Auto Trait Implementations§
impl Freeze for EconomicsRequest
impl RefUnwindSafe for EconomicsRequest
impl Send for EconomicsRequest
impl Sync for EconomicsRequest
impl Unpin for EconomicsRequest
impl UnsafeUnpin for EconomicsRequest
impl UnwindSafe for EconomicsRequest
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.