pub struct Message {Show 16 fields
pub id: String,
pub role: Role,
pub content: String,
pub reasoning: Option<String>,
pub content_parts: Option<Vec<MessagePart>>,
pub image_ocr: Option<Vec<ImageOcrResult>>,
pub phase: Option<MessagePhase>,
pub tool_calls: Option<Vec<ToolCall>>,
pub tool_call_id: Option<String>,
pub tool_success: Option<bool>,
pub compressed: bool,
pub compressed_by_event_id: Option<String>,
pub never_compress: bool,
pub compression_level: u8,
pub created_at: DateTime<Utc>,
pub metadata: Option<Value>,
}Expand description
A single message in a conversation.
Fields§
§id: String§role: Role§content: String§reasoning: Option<String>§content_parts: Option<Vec<MessagePart>>§image_ocr: Option<Vec<ImageOcrResult>>§phase: Option<MessagePhase>§tool_calls: Option<Vec<ToolCall>>§tool_call_id: Option<String>§tool_success: Option<bool>§compressed: bool§compressed_by_event_id: Option<String>§never_compress: boolWhen true, this message is protected from context compression and will never be moved into the summary set.
compression_level: u8Progressive compression level: 0=uncompressed, 1=lightly compacted (head/tail), 2=heavily compacted. Applied at context preparation time, not persisted.
created_at: DateTime<Utc>§metadata: Option<Value>Implementations§
Source§impl Message
impl Message
pub fn user(content: impl Into<String>) -> Message
pub fn user_with_parts( content: impl Into<String>, parts: Vec<MessagePart>, ) -> Message
pub fn assistant( content: impl Into<String>, tool_calls: Option<Vec<ToolCall>>, ) -> Message
pub fn assistant_with_reasoning( content: impl Into<String>, tool_calls: Option<Vec<ToolCall>>, reasoning: Option<String>, ) -> Message
pub fn tool_result( tool_call_id: impl Into<String>, content: impl Into<String>, ) -> Message
pub fn tool_result_with_status( tool_call_id: impl Into<String>, content: impl Into<String>, success: bool, ) -> Message
pub fn system(content: impl Into<String>) -> Message
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Message
impl<'de> Deserialize<'de> for Message
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<Message, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<Message, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl FromProvider<AnthropicMessage> for Message
impl FromProvider<AnthropicMessage> for Message
Source§fn from_provider(msg: AnthropicMessage) -> Result<Message, ProtocolError>
fn from_provider(msg: AnthropicMessage) -> Result<Message, ProtocolError>
Convert from provider-specific type to internal type.
Source§impl FromProvider<ChatMessage> for Message
impl FromProvider<ChatMessage> for Message
Source§fn from_provider(msg: ChatMessage) -> Result<Message, ProtocolError>
fn from_provider(msg: ChatMessage) -> Result<Message, ProtocolError>
Convert from provider-specific type to internal type.
Source§impl FromProvider<GeminiContent> for Message
impl FromProvider<GeminiContent> for Message
Source§fn from_provider(content: GeminiContent) -> Result<Message, ProtocolError>
fn from_provider(content: GeminiContent) -> Result<Message, ProtocolError>
Convert from provider-specific type to internal type.
Source§impl FromProviderBatch<ChatMessage> for Message
impl FromProviderBatch<ChatMessage> for Message
fn from_provider_batch( values: Vec<ChatMessage>, ) -> Result<Vec<Message>, ProtocolError>
Source§impl GeminiExt for Message
impl GeminiExt for Message
fn into_internal(self) -> Result<Message, ProtocolError>
fn to_gemini(&self) -> Result<GeminiContent, ProtocolError>
Source§impl Serialize for Message
impl Serialize for Message
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl ToProvider<AnthropicMessage> for Message
impl ToProvider<AnthropicMessage> for Message
Source§fn to_provider(&self) -> Result<AnthropicMessage, ProtocolError>
fn to_provider(&self) -> Result<AnthropicMessage, ProtocolError>
Convert from internal type to provider-specific type.
Source§impl ToProvider<ChatMessage> for Message
impl ToProvider<ChatMessage> for Message
Source§fn to_provider(&self) -> Result<ChatMessage, ProtocolError>
fn to_provider(&self) -> Result<ChatMessage, ProtocolError>
Convert from internal type to provider-specific type.
Source§impl ToProvider<GeminiContent> for Message
impl ToProvider<GeminiContent> for Message
Source§fn to_provider(&self) -> Result<GeminiContent, ProtocolError>
fn to_provider(&self) -> Result<GeminiContent, ProtocolError>
Convert from internal type to provider-specific type.
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