vapi_client/models/
open_ai_message.rs1use serde::{Deserialize, Serialize};
12
13use crate::models;
14
15#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
16pub struct OpenAiMessage {
17 #[serde(rename = "content", deserialize_with = "Option::deserialize")]
18 pub content: Option<String>,
19 #[serde(rename = "role")]
20 pub role: Role,
21}
22
23impl OpenAiMessage {
24 pub fn new(content: Option<String>, role: Role) -> OpenAiMessage {
25 OpenAiMessage { content, role }
26 }
27}
28#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
30pub enum Role {
31 #[serde(rename = "assistant")]
32 Assistant,
33 #[serde(rename = "function")]
34 Function,
35 #[serde(rename = "user")]
36 User,
37 #[serde(rename = "system")]
38 System,
39 #[serde(rename = "tool")]
40 Tool,
41}
42
43impl Default for Role {
44 fn default() -> Role {
45 Self::Assistant
46 }
47}