pub enum MessageRole {
System,
User,
Assistant,
Tool,
}
Variants§
Implementations§
Source§impl MessageRole
impl MessageRole
Sourcepub fn as_gemini_str(&self) -> &'static str
pub fn as_gemini_str(&self) -> &'static str
Get the role string for Gemini API Note: Gemini API has specific constraints on message roles
- Only accepts “user” and “model” roles in conversations
- System messages are handled separately as system instructions
- Tool responses are sent as “user” role with function response format
Sourcepub fn as_openai_str(&self) -> &'static str
pub fn as_openai_str(&self) -> &'static str
Get the role string for OpenAI API OpenAI supports all standard role types including:
- system, user, assistant, tool
- function (legacy, now replaced by tool)
Sourcepub fn as_anthropic_str(&self) -> &'static str
pub fn as_anthropic_str(&self) -> &'static str
Get the role string for Anthropic API Anthropic has specific handling for tool messages:
- Supports user, assistant roles normally
- Tool responses are treated as user messages
- System messages can be handled as system parameter or hoisted
Sourcepub fn as_generic_str(&self) -> &'static str
pub fn as_generic_str(&self) -> &'static str
Get the role string for generic OpenAI-compatible providers Most providers follow OpenAI’s role conventions
Sourcepub fn can_make_tool_calls(&self) -> bool
pub fn can_make_tool_calls(&self) -> bool
Check if this role supports tool calls Only Assistant role can initiate tool calls in most APIs
Sourcepub fn is_tool_response(&self) -> bool
pub fn is_tool_response(&self) -> bool
Check if this role represents a tool response
Trait Implementations§
Source§impl Clone for MessageRole
impl Clone for MessageRole
Source§fn clone(&self) -> MessageRole
fn clone(&self) -> MessageRole
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 MessageRole
impl Debug for MessageRole
Source§impl<'de> Deserialize<'de> for MessageRole
impl<'de> Deserialize<'de> for MessageRole
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 PartialEq for MessageRole
impl PartialEq for MessageRole
Source§impl Serialize for MessageRole
impl Serialize for MessageRole
impl Eq for MessageRole
impl StructuralPartialEq for MessageRole
Auto Trait Implementations§
impl Freeze for MessageRole
impl RefUnwindSafe for MessageRole
impl Send for MessageRole
impl Sync for MessageRole
impl Unpin for MessageRole
impl UnwindSafe for MessageRole
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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