use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct MemoryMessage {
#[serde(rename = "role")]
pub role: Role,
#[serde(rename = "content")]
pub content: String,
}
impl MemoryMessage {
pub fn new(role: Role, content: String) -> MemoryMessage {
MemoryMessage {
role,
content,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Role {
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
}
impl Default for Role {
fn default() -> Role {
Self::User
}
}