pub struct MessageMeta {
pub session_id: String,
pub timestamp: Option<SystemTime>,
pub cost_usd: Option<f64>,
pub duration_ms: Option<u64>,
pub tokens_used: Option<TokenUsage>,
}
Expand description
Metadata associated with a message
Contains contextual information about a message including timing, cost, and resource usage. Not all fields are populated for every message type.
§Examples
let meta = MessageMeta {
session_id: "session-123".to_string(),
timestamp: Some(SystemTime::now()),
cost_usd: Some(0.0015),
duration_ms: Some(1200),
tokens_used: Some(TokenUsage {
input: 50,
output: 100,
total: 150,
}),
};
// Check if this was an expensive message
if let Some(cost) = meta.cost_usd {
if cost > 0.01 {
println!("Warning: High cost message: ${:.4}", cost);
}
}
Fields§
§session_id: String
Unique identifier for the session this message belongs to
timestamp: Option<SystemTime>
Timestamp when the message was created
cost_usd: Option<f64>
Cost of processing this specific message in USD
duration_ms: Option<u64>
Time taken to process this message in milliseconds
tokens_used: Option<TokenUsage>
Token usage for this specific message
Trait Implementations§
Source§impl Clone for MessageMeta
impl Clone for MessageMeta
Source§fn clone(&self) -> MessageMeta
fn clone(&self) -> MessageMeta
Returns a duplicate of the value. Read more
1.0.0 · 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 MessageMeta
impl Debug for MessageMeta
Source§impl<'de> Deserialize<'de> for MessageMeta
impl<'de> Deserialize<'de> for MessageMeta
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
Auto Trait Implementations§
impl Freeze for MessageMeta
impl RefUnwindSafe for MessageMeta
impl Send for MessageMeta
impl Sync for MessageMeta
impl Unpin for MessageMeta
impl UnwindSafe for MessageMeta
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<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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