@@ -130,7 +130,7 @@ pub struct HandlerFn<F> {
130
130
impl < F , A , B , Error , Fut > Handler < A , B > for HandlerFn < F >
131
131
where
132
132
F : Fn ( A , Context ) -> Fut ,
133
- Fut : Future < Output = Result < B , Error > > + Send ,
133
+ Fut : Future < Output = Result < B , Error > > + Send ,
134
134
Error : Into < Box < dyn std:: error:: Error + Send + Sync + ' static > > + fmt:: Display ,
135
135
{
136
136
type Error = Error ;
@@ -170,6 +170,7 @@ where
170
170
& self ,
171
171
incoming : impl Stream < Item = Result < http:: Response < hyper:: Body > , Error > > + Send ,
172
172
handler : F ,
173
+ config : & Config ,
173
174
) -> Result < ( ) , Error >
174
175
where
175
176
F : Handler < A , B > + Send + Sync + ' static ,
@@ -186,7 +187,9 @@ where
186
187
let event = event?;
187
188
let ( parts, body) = event. into_parts ( ) ;
188
189
189
- let ctx: Context = Context :: try_from ( parts. headers ) ?;
190
+ let ctx: Context = Context :: try_from ( parts. headers )
191
+ . expect ( "Unable to get Context from http headers" )
192
+ . with_config ( config) ;
190
193
let body = hyper:: body:: to_bytes ( body) . await ?;
191
194
trace ! ( "{}" , std:: str :: from_utf8( & body) ?) ; // this may be very verbose
192
195
let body = serde_json:: from_slice ( & body) ?;
@@ -328,23 +331,23 @@ where
328
331
pub async fn run < A , B , F > ( handler : F ) -> Result < ( ) , Error >
329
332
where
330
333
F : Handler < A , B > + Send + Sync + ' static ,
331
- <F as Handler < A , B > >:: Fut : Future < Output = Result < B , <F as Handler < A , B > >:: Error > > + Send + ' static ,
334
+ <F as Handler < A , B > >:: Fut : Future < Output = Result < B , <F as Handler < A , B > >:: Error > > + Send + ' static ,
332
335
<F as Handler < A , B > >:: Error : fmt:: Display + Send + Sync + ' static ,
333
336
A : for < ' de > Deserialize < ' de > + Send + Sync + ' static ,
334
337
B : Serialize + Send + Sync + ' static ,
335
338
{
336
339
trace ! ( "Loading config from env" ) ;
337
340
let config = Config :: from_env ( ) ?;
338
- let uri = config. endpoint . try_into ( ) . expect ( "Unable to convert to URL" ) ;
341
+ let uri = config. endpoint . as_str ( ) . try_into ( ) . expect ( "Unable to convert to URL" ) ;
339
342
let runtime = Runtime :: builder ( )
340
343
. with_connector ( HttpConnector :: new ( ) )
341
344
. with_endpoint ( uri)
342
345
. build ( )
343
- . expect ( "Unable create runtime" ) ;
346
+ . expect ( "Unable to create runtime" ) ;
344
347
345
348
let client = & runtime. client ;
346
349
let incoming = incoming ( client) ;
347
- runtime. run ( incoming, handler) . await
350
+ runtime. run ( incoming, handler, & config ) . await
348
351
}
349
352
350
353
fn type_name_of_val < T > ( _: T ) -> & ' static str {
0 commit comments