@@ -22,22 +22,22 @@ pub struct ResponseWrapper<T> {
2222pub struct Headers {
2323 /// The maximum number of requests that are permitted before exhausting the rate limit.
2424 #[ serde( rename = "x-ratelimit-limit-requests" ) ]
25- pub x_ratelimit_limit_requests : u32 ,
25+ pub x_ratelimit_limit_requests : Option < u32 > ,
2626 /// The maximum number of tokens that are permitted before exhausting the rate limit.
2727 #[ serde( rename = "x-ratelimit-limit-tokens" ) ]
28- pub x_ratelimit_limit_tokens : u32 ,
28+ pub x_ratelimit_limit_tokens : Option < u32 > ,
2929 /// The remaining number of requests that are permitted before exhausting the rate limit.
3030 #[ serde( rename = "x-ratelimit-remaining-requests" ) ]
31- pub x_ratelimit_remaining_requests : u32 ,
31+ pub x_ratelimit_remaining_requests : Option < u32 > ,
3232 /// The remaining number of tokens that are permitted before exhausting the rate limit.
3333 #[ serde( rename = "x-ratelimit-remaining-tokens" ) ]
34- pub x_ratelimit_remaining_tokens : u32 ,
34+ pub x_ratelimit_remaining_tokens : Option < u32 > ,
3535 /// The time until the rate limit (based on requests) resets to its initial state.
3636 #[ serde( rename = "x-ratelimit-reset-requests" ) ]
37- pub x_ratelimit_reset_requests : String ,
37+ pub x_ratelimit_reset_requests : Option < String > ,
3838 /// The time until the rate limit (based on tokens) resets to its initial state.
3939 #[ serde( rename = "x-ratelimit-reset-tokens" ) ]
40- pub x_ratelimit_reset_tokens : String ,
40+ pub x_ratelimit_reset_tokens : Option < String > ,
4141}
4242
4343#[ derive( Serialize , Deserialize , Debug , Clone , PartialEq ) ]
@@ -103,47 +103,76 @@ pub enum StopToken {
103103
104104impl From < HeaderMap > for Headers {
105105 fn from ( value : HeaderMap ) -> Self {
106+ if value. get ( "x-ratelimit-limit-requests" ) . is_none ( )
107+ || value. get ( "x-ratelimit-limit-tokens" ) . is_none ( )
108+ || value. get ( "x-ratelimit-remaining-requests" ) . is_none ( )
109+ || value. get ( "x-ratelimit-remaining-tokens" ) . is_none ( )
110+ || value. get ( "x-ratelimit-reset-requests" ) . is_none ( )
111+ || value. get ( "x-ratelimit-reset-tokens" ) . is_none ( )
112+ {
113+ return Self {
114+ x_ratelimit_limit_requests : None ,
115+ x_ratelimit_limit_tokens : None ,
116+ x_ratelimit_remaining_requests : None ,
117+ x_ratelimit_remaining_tokens : None ,
118+ x_ratelimit_reset_requests : None ,
119+ x_ratelimit_reset_tokens : None ,
120+ } ;
121+ }
122+
106123 Self {
107- x_ratelimit_limit_requests : value
108- . get ( "x-ratelimit-limit-requests" )
109- . unwrap ( )
110- . to_str ( )
111- . unwrap ( )
112- . parse :: < u32 > ( )
113- . unwrap ( ) ,
114- x_ratelimit_limit_tokens : value
115- . get ( "x-ratelimit-limit-tokens" )
116- . unwrap ( )
117- . to_str ( )
118- . unwrap ( )
119- . parse :: < u32 > ( )
120- . unwrap ( ) ,
121- x_ratelimit_remaining_requests : value
122- . get ( "x-ratelimit-remaining-requests" )
123- . unwrap ( )
124- . to_str ( )
125- . unwrap ( )
126- . parse :: < u32 > ( )
127- . unwrap ( ) ,
128- x_ratelimit_remaining_tokens : value
129- . get ( "x-ratelimit-remaining-tokens" )
130- . unwrap ( )
131- . to_str ( )
132- . unwrap ( )
133- . parse :: < u32 > ( )
134- . unwrap ( ) ,
135- x_ratelimit_reset_requests : value
136- . get ( "x-ratelimit-reset-requests" )
137- . unwrap ( )
138- . to_str ( )
139- . unwrap ( )
140- . to_string ( ) ,
141- x_ratelimit_reset_tokens : value
142- . get ( "x-ratelimit-reset-tokens" )
143- . unwrap ( )
144- . to_str ( )
145- . unwrap ( )
146- . to_string ( ) ,
124+ x_ratelimit_limit_requests : Some (
125+ value
126+ . get ( "x-ratelimit-limit-requests" )
127+ . unwrap ( )
128+ . to_str ( )
129+ . unwrap ( )
130+ . parse :: < u32 > ( )
131+ . unwrap ( ) ,
132+ ) ,
133+ x_ratelimit_limit_tokens : Some (
134+ value
135+ . get ( "x-ratelimit-limit-tokens" )
136+ . unwrap ( )
137+ . to_str ( )
138+ . unwrap ( )
139+ . parse :: < u32 > ( )
140+ . unwrap ( ) ,
141+ ) ,
142+ x_ratelimit_remaining_requests : Some (
143+ value
144+ . get ( "x-ratelimit-remaining-requests" )
145+ . unwrap ( )
146+ . to_str ( )
147+ . unwrap ( )
148+ . parse :: < u32 > ( )
149+ . unwrap ( ) ,
150+ ) ,
151+ x_ratelimit_remaining_tokens : Some (
152+ value
153+ . get ( "x-ratelimit-remaining-tokens" )
154+ . unwrap ( )
155+ . to_str ( )
156+ . unwrap ( )
157+ . parse :: < u32 > ( )
158+ . unwrap ( ) ,
159+ ) ,
160+ x_ratelimit_reset_requests : Some (
161+ value
162+ . get ( "x-ratelimit-reset-requests" )
163+ . unwrap ( )
164+ . to_str ( )
165+ . unwrap ( )
166+ . to_string ( ) ,
167+ ) ,
168+ x_ratelimit_reset_tokens : Some (
169+ value
170+ . get ( "x-ratelimit-reset-tokens" )
171+ . unwrap ( )
172+ . to_str ( )
173+ . unwrap ( )
174+ . to_string ( ) ,
175+ ) ,
147176 }
148177 }
149178}
0 commit comments