@@ -6,7 +6,7 @@ use std::collections::HashMap;
66use crate :: impl_builder_methods;
77use crate :: v1:: common;
88
9- #[ derive( Debug , Serialize , Clone ) ]
9+ #[ derive( Debug , Serialize , Clone , PartialEq , Eq ) ]
1010pub enum ToolChoiceType {
1111 None ,
1212 Auto ,
@@ -89,7 +89,7 @@ impl_builder_methods!(
8989 tool_choice: ToolChoiceType
9090) ;
9191
92- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
92+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
9393#[ allow( non_camel_case_types) ]
9494pub enum MessageRole {
9595 user,
@@ -98,7 +98,7 @@ pub enum MessageRole {
9898 function,
9999}
100100
101- #[ derive( Debug , Deserialize , Clone ) ]
101+ #[ derive( Debug , Deserialize , Clone , PartialEq , Eq ) ]
102102pub enum Content {
103103 Text ( String ) ,
104104 ImageUrl ( Vec < ImageUrl > ) ,
@@ -116,20 +116,20 @@ impl serde::Serialize for Content {
116116 }
117117}
118118
119- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
119+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
120120#[ allow( non_camel_case_types) ]
121121pub enum ContentType {
122122 text,
123123 image_url,
124124}
125125
126- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
126+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
127127#[ allow( non_camel_case_types) ]
128128pub struct ImageUrlType {
129129 pub url : String ,
130130}
131131
132- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
132+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
133133#[ allow( non_camel_case_types) ]
134134pub struct ImageUrl {
135135 pub r#type : ContentType ,
@@ -177,15 +177,15 @@ pub struct ChatCompletionResponse {
177177 pub system_fingerprint : Option < String > ,
178178}
179179
180- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
180+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
181181pub struct Function {
182182 pub name : String ,
183183 #[ serde( skip_serializing_if = "Option::is_none" ) ]
184184 pub description : Option < String > ,
185185 pub parameters : FunctionParameters ,
186186}
187187
188- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
188+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
189189#[ serde( rename_all = "lowercase" ) ]
190190pub enum JSONSchemaType {
191191 Object ,
@@ -196,7 +196,7 @@ pub enum JSONSchemaType {
196196 Boolean ,
197197}
198198
199- #[ derive( Debug , Deserialize , Serialize , Clone , Default ) ]
199+ #[ derive( Debug , Deserialize , Serialize , Clone , Default , PartialEq , Eq ) ]
200200pub struct JSONSchemaDefine {
201201 #[ serde( rename = "type" ) ]
202202 pub schema_type : Option < JSONSchemaType > ,
@@ -212,7 +212,7 @@ pub struct JSONSchemaDefine {
212212 pub items : Option < Box < JSONSchemaDefine > > ,
213213}
214214
215- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
215+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
216216pub struct FunctionParameters {
217217 #[ serde( rename = "type" ) ]
218218 pub schema_type : JSONSchemaType ,
@@ -222,7 +222,7 @@ pub struct FunctionParameters {
222222 pub required : Option < Vec < String > > ,
223223}
224224
225- #[ derive( Debug , Deserialize , Serialize ) ]
225+ #[ derive( Debug , Deserialize , Serialize , PartialEq , Eq ) ]
226226#[ allow( non_camel_case_types) ]
227227pub enum FinishReason {
228228 stop,
@@ -274,13 +274,13 @@ where
274274 }
275275}
276276
277- #[ derive( Debug , Deserialize , Serialize , Clone ) ]
277+ #[ derive( Debug , Deserialize , Serialize , Clone , PartialEq , Eq ) ]
278278pub struct Tool {
279279 pub r#type : ToolType ,
280280 pub function : Function ,
281281}
282282
283- #[ derive( Debug , Deserialize , Serialize , Copy , Clone ) ]
283+ #[ derive( Debug , Deserialize , Serialize , Copy , Clone , PartialEq , Eq ) ]
284284#[ serde( rename_all = "snake_case" ) ]
285285pub enum ToolType {
286286 Function ,
0 commit comments