@@ -61,71 +61,6 @@ impl ModelInfo {
6161 self . model_name . as_deref ( ) . unwrap_or ( & self . model_id )
6262 }
6363}
64- impl < ' de > Deserialize < ' de > for ModelInfo {
65- fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
66- where
67- D : Deserializer < ' de > ,
68- {
69- use std:: fmt;
70-
71- use serde:: de:: {
72- self ,
73- MapAccess ,
74- Visitor ,
75- } ;
76-
77- struct ModelInfoVisitor ;
78-
79- impl < ' de > Visitor < ' de > for ModelInfoVisitor {
80- type Value = ModelInfo ;
81-
82- fn expecting ( & self , formatter : & mut fmt:: Formatter < ' _ > ) -> fmt:: Result {
83- formatter. write_str ( "a string or a ModelInfo object" )
84- }
85-
86- // old version: modelid string
87- fn visit_str < E > ( self , value : & str ) -> Result < ModelInfo , E >
88- where
89- E : de:: Error ,
90- {
91- Ok ( ModelInfo {
92- model_id : value. to_string ( ) ,
93- model_name : None ,
94- context_window_tokens : default_context_window ( ) ,
95- } )
96- }
97-
98- // new version: modelInfo object
99- fn visit_map < M > ( self , mut map : M ) -> Result < ModelInfo , M :: Error >
100- where
101- M : MapAccess < ' de > ,
102- {
103- let mut model_id = None ;
104- let mut model_name = None ;
105- let mut context_window_tokens = None ;
106-
107- while let Some ( key) = map. next_key :: < String > ( ) ? {
108- match key. as_str ( ) {
109- "model_id" => model_id = Some ( map. next_value ( ) ?) ,
110- "model_name" => model_name = map. next_value ( ) ?,
111- "context_window_tokens" => context_window_tokens = Some ( map. next_value ( ) ?) ,
112- _ => {
113- let _: serde:: de:: IgnoredAny = map. next_value ( ) ?;
114- } ,
115- }
116- }
117-
118- Ok ( ModelInfo {
119- model_id : model_id. ok_or_else ( || de:: Error :: missing_field ( "model_id" ) ) ?,
120- model_name,
121- context_window_tokens : context_window_tokens. unwrap_or_else ( default_context_window) ,
122- } )
123- }
124- }
125-
126- deserializer. deserialize_any ( ModelInfoVisitor )
127- }
128- }
12964#[ deny( missing_docs) ]
13065#[ derive( Debug , PartialEq , Args ) ]
13166pub struct ModelArgs ;
0 commit comments