pub enum MessageContent {
Text(String),
Parts(Vec<ContentPart>),
}Expand description
The body of a Message: either plain text or a list of rich content parts.
MessageContent serialises as a JSON string for Text and as a JSON array
for Parts, matching the format expected by OpenAI, Anthropic, and Ollama.
§Constructing
Plain-text messages work through From<String> / From<&str>:
use rune_chain_core::MessageContent;
let c: MessageContent = "hello".into();
assert_eq!(c.as_text(), "hello");Multi-modal messages use MessageContent::Parts:
use rune_chain_core::{MessageContent, ContentPart};
let c = MessageContent::Parts(vec![
ContentPart::text("What is in this image?"),
ContentPart::image_url("https://example.com/cat.jpg"),
]);Variants§
Text(String)
Plain UTF-8 text.
Parts(Vec<ContentPart>)
An ordered sequence of rich content parts (text + images).
Implementations§
Source§impl MessageContent
impl MessageContent
Sourcepub fn as_text(&self) -> &str
pub fn as_text(&self) -> &str
Return the text content.
- For
Text(s): borrowssdirectly. - For
Parts(...): returns""— usetext_contentto get all text.
Sourcepub fn text_content(&self) -> String
pub fn text_content(&self) -> String
Collect all text fragments into an owned String.
For Text(s): clones s.
For Parts(...): joins all Text parts with a space.
Trait Implementations§
Source§impl Clone for MessageContent
impl Clone for MessageContent
Source§fn clone(&self) -> MessageContent
fn clone(&self) -> MessageContent
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 MessageContent
impl Debug for MessageContent
Source§impl<'de> Deserialize<'de> for MessageContent
impl<'de> Deserialize<'de> for MessageContent
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
Source§impl Display for MessageContent
impl Display for MessageContent
impl Eq for MessageContent
Source§impl From<&String> for MessageContent
impl From<&String> for MessageContent
Source§impl From<&str> for MessageContent
impl From<&str> for MessageContent
Source§impl From<String> for MessageContent
impl From<String> for MessageContent
Source§impl PartialEq for MessageContent
impl PartialEq for MessageContent
Source§impl PartialEq<&str> for MessageContent
impl PartialEq<&str> for MessageContent
Source§impl PartialEq<String> for MessageContent
impl PartialEq<String> for MessageContent
Source§impl PartialEq<str> for MessageContent
impl PartialEq<str> for MessageContent
Source§impl Serialize for MessageContent
impl Serialize for MessageContent
impl StructuralPartialEq for MessageContent
Auto Trait Implementations§
impl Freeze for MessageContent
impl RefUnwindSafe for MessageContent
impl Send for MessageContent
impl Sync for MessageContent
impl Unpin for MessageContent
impl UnsafeUnpin for MessageContent
impl UnwindSafe for MessageContent
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