use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MessageRole {
#[serde(rename = "unknown")]
Unknown,
#[serde(rename = "user")]
User,
#[serde(rename = "assistant")]
Assistant,
#[serde(rename = "system")]
System,
#[serde(rename = "critic")]
Critic,
#[serde(rename = "discriminator")]
Discriminator,
#[serde(rename = "developer")]
Developer,
#[serde(rename = "tool")]
Tool,
}
impl std::fmt::Display for MessageRole {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Unknown => write!(f, "unknown"),
Self::User => write!(f, "user"),
Self::Assistant => write!(f, "assistant"),
Self::System => write!(f, "system"),
Self::Critic => write!(f, "critic"),
Self::Discriminator => write!(f, "discriminator"),
Self::Developer => write!(f, "developer"),
Self::Tool => write!(f, "tool"),
}
}
}
impl Default for MessageRole {
fn default() -> MessageRole {
Self::Unknown
}
}