pub struct Message {
pub id: Option<String>,
pub role: Option<String>,
pub model: Option<String>,
pub content: Option<MessageContent>,
pub usage: Option<TokenUsage>,
pub extra: HashMap<String, Value>,
}Expand description
Message content (user or assistant)
Fields§
§id: Option<String>Message ID — used for SSE stream deduplication
role: Option<String>Role (user, assistant, system)
model: Option<String>Model string e.g. “claude-sonnet-4-5-20250929”
content: Option<MessageContent>Content (string or typed block array)
usage: Option<TokenUsage>Token usage — populated on assistant messages from the API response
extra: HashMap<String, Value>Additional message metadata
Implementations§
Source§impl Message
impl Message
Sourcepub fn content_blocks(&self) -> &[ContentBlock]
pub fn content_blocks(&self) -> &[ContentBlock]
Returns typed content blocks (empty slice for legacy string content).
Sourcepub fn text_content(&self) -> String
pub fn text_content(&self) -> String
Returns all plain text, handling both legacy strings and block arrays.
Sourcepub fn model_short(&self) -> Option<&str>
pub fn model_short(&self) -> Option<&str>
Model name with date suffix stripped. “claude-sonnet-4-5-20250929” -> “claude-sonnet-4-5”
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Message
impl<'de> Deserialize<'de> for Message
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 Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnsafeUnpin for Message
impl UnwindSafe for Message
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