mistral_openapi_client/models/
base_field_definition.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct BaseFieldDefinition {
16 #[serde(rename = "name")]
17 pub name: String,
18 #[serde(rename = "label")]
19 pub label: String,
20 #[serde(rename = "type")]
21 pub r#type: Type,
22 #[serde(rename = "group", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
23 pub group: Option<Option<String>>,
24 #[serde(rename = "supported_operators")]
25 pub supported_operators: Vec<SupportedOperators>,
26}
27
28impl BaseFieldDefinition {
29 pub fn new(name: String, label: String, r#type: Type, supported_operators: Vec<SupportedOperators>) -> BaseFieldDefinition {
30 BaseFieldDefinition {
31 name,
32 label,
33 r#type,
34 group: None,
35 supported_operators,
36 }
37 }
38}
39#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
41pub enum Type {
42 #[serde(rename = "ENUM")]
43 Enum,
44 #[serde(rename = "TEXT")]
45 Text,
46 #[serde(rename = "INT")]
47 Int,
48 #[serde(rename = "FLOAT")]
49 Float,
50 #[serde(rename = "BOOL")]
51 Bool,
52 #[serde(rename = "TIMESTAMP")]
53 Timestamp,
54 #[serde(rename = "ARRAY")]
55 Array,
56}
57
58impl Default for Type {
59 fn default() -> Type {
60 Self::Enum
61 }
62}
63#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
65pub enum SupportedOperators {
66 #[serde(rename = "lt")]
67 Lt,
68 #[serde(rename = "lte")]
69 Lte,
70 #[serde(rename = "gt")]
71 Gt,
72 #[serde(rename = "gte")]
73 Gte,
74 #[serde(rename = "startswith")]
75 Startswith,
76 #[serde(rename = "istartswith")]
77 Istartswith,
78 #[serde(rename = "endswith")]
79 Endswith,
80 #[serde(rename = "iendswith")]
81 Iendswith,
82 #[serde(rename = "contains")]
83 Contains,
84 #[serde(rename = "icontains")]
85 Icontains,
86 #[serde(rename = "matches")]
87 Matches,
88 #[serde(rename = "notcontains")]
89 Notcontains,
90 #[serde(rename = "inotcontains")]
91 Inotcontains,
92 #[serde(rename = "eq")]
93 Eq,
94 #[serde(rename = "neq")]
95 Neq,
96 #[serde(rename = "isnull")]
97 Isnull,
98 #[serde(rename = "includes")]
99 Includes,
100 #[serde(rename = "excludes")]
101 Excludes,
102 #[serde(rename = "len_eq")]
103 LenEq,
104}
105
106impl Default for SupportedOperators {
107 fn default() -> SupportedOperators {
108 Self::Lt
109 }
110}
111