mistral_openapi_client/models/
message_input_content_chunks_inner.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct MessageInputContentChunksInner {
16 #[serde(rename = "type", skip_serializing_if = "Option::is_none")]
17 pub r#type: Option<Type>,
18 #[serde(rename = "text")]
19 pub text: String,
20 #[serde(rename = "image_url")]
21 pub image_url: Box<models::ImageUrl>,
22 #[serde(rename = "tool")]
23 pub tool: Box<models::Tool1>,
24 #[serde(rename = "file_id")]
25 pub file_id: String,
26 #[serde(rename = "file_name", skip_serializing_if = "Option::is_none")]
27 pub file_name: Option<String>,
28 #[serde(rename = "file_type", skip_serializing_if = "Option::is_none")]
29 pub file_type: Option<String>,
30 #[serde(rename = "document_url")]
31 pub document_url: String,
32 #[serde(rename = "document_name", skip_serializing_if = "Option::is_none")]
33 pub document_name: Option<String>,
34 #[serde(rename = "thinking")]
35 pub thinking: Vec<models::ThinkingInner>,
36 #[serde(rename = "closed", skip_serializing_if = "Option::is_none")]
38 pub closed: Option<bool>,
39}
40
41impl MessageInputContentChunksInner {
42 pub fn new(text: String, image_url: models::ImageUrl, tool: models::Tool1, file_id: String, document_url: String, thinking: Vec<models::ThinkingInner>) -> MessageInputContentChunksInner {
43 MessageInputContentChunksInner {
44 r#type: None,
45 text,
46 image_url: Box::new(image_url),
47 tool: Box::new(tool),
48 file_id,
49 file_name: None,
50 file_type: None,
51 document_url,
52 document_name: None,
53 thinking,
54 closed: None,
55 }
56 }
57}
58#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
60pub enum Type {
61 #[serde(rename = "text")]
62 Text,
63 #[serde(rename = "image_url")]
64 ImageUrl,
65 #[serde(rename = "tool_file")]
66 ToolFile,
67 #[serde(rename = "document_url")]
68 DocumentUrl,
69 #[serde(rename = "thinking")]
70 Thinking,
71}
72
73impl Default for Type {
74 fn default() -> Type {
75 Self::Text
76 }
77}
78