vapi_client/models/
assistant_message.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct AssistantMessage {
16 #[serde(rename = "role")]
18 pub role: RoleTrue,
19 #[serde(rename = "content", skip_serializing_if = "Option::is_none")]
21 pub content: Option<String>,
22 #[serde(rename = "refusal", skip_serializing_if = "Option::is_none")]
24 pub refusal: Option<String>,
25 #[serde(rename = "tool_calls", skip_serializing_if = "Option::is_none")]
27 pub tool_calls: Option<Vec<models::ToolCall>>,
28 #[serde(rename = "name", skip_serializing_if = "Option::is_none")]
30 pub name: Option<String>,
31}
32
33impl AssistantMessage {
34 pub fn new(role: RoleTrue) -> AssistantMessage {
35 AssistantMessage {
36 role,
37 content: None,
38 refusal: None,
39 tool_calls: None,
40 name: None,
41 }
42 }
43}
44#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
46pub enum RoleTrue {
47 #[serde(rename = "assistant")]
48 Assistant,
49}
50
51impl Default for RoleTrue {
52 fn default() -> RoleTrue {
53 Self::Assistant
54 }
55}