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