1use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
5#[serde(rename_all = "lowercase")]
6pub enum Role {
7 User,
8 Assistant,
9}
10
11impl Default for Role {
12 fn default() -> Self {
13 Role::User
14 }
15}
16
17impl Role {
18 pub fn all() -> Vec<Self> {
20 vec![Role::User, Role::Assistant]
21 }
22 pub fn user() -> Self {
24 Role::User
25 }
26 pub fn assistant() -> Self {
28 Role::Assistant
29 }
30
31 pub fn get_name(&self) -> &'static str {
33 match self {
34 Role::User => "user",
35 Role::Assistant => "assistant",
36 }
37 }
38}