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}