open_routerer/models/
chat.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Serialize, Deserialize)]
5#[serde(rename_all = "lowercase")]
6pub enum ChatRole {
7 User,
8 Assistant,
9 System,
10}
11
12#[derive(Debug, Clone, Serialize, Deserialize)]
15pub struct ChatMessage {
16 pub role: ChatRole,
17 pub content: String,
18}
19
20impl From<ChatMessage> for crate::types::chat::Message {
22 fn from(chat_msg: ChatMessage) -> Self {
23 let role_str = match chat_msg.role {
25 ChatRole::User => "user".to_string(),
26 ChatRole::Assistant => "assistant".to_string(),
27 ChatRole::System => "system".to_string(),
28 };
29 Self {
30 role: role_str,
31 content: chat_msg.content,
32 name: None,
33 }
34 }
35}