Skip to main content

agent_types/
message.rs

1//! Message-related pure types: MessageRole.
2
3use serde::{Deserialize, Serialize};
4
5#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
6pub enum MessageRole {
7    System,
8    User,
9    Assistant,
10    Tool,
11}
12
13impl MessageRole {
14    pub fn as_str(&self) -> &'static str {
15        match self {
16            MessageRole::System => "system",
17            MessageRole::User => "user",
18            MessageRole::Assistant => "assistant",
19            MessageRole::Tool => "tool",
20        }
21    }
22
23    pub fn as_api_role(&self) -> &'static str {
24        self.as_str()
25    }
26}