@@ -1101,27 +1101,24 @@ where
11011101 macro_rules! call {
11021102 (
11031103 $req: expr,
1104- $method: expr,
11051104 $method_variant: ident,
11061105 $svc: expr
11071106 ) => {
1108- if $ method == Method :: $method_variant {
1107+ if * req . method( ) == Method :: $method_variant {
11091108 match $svc {
11101109 MethodEndpoint :: None => { }
11111110 MethodEndpoint :: Route ( route) => {
1112- return route. clone( ) . oneshot_inner ( $req) ;
1111+ return route. clone( ) . oneshot_inner_owned ( $req) ;
11131112 }
11141113 MethodEndpoint :: BoxedHandler ( handler) => {
1115- let mut route = handler. clone( ) . into_route( state) ;
1116- return route. oneshot_inner ( $req) ;
1114+ let route = handler. clone( ) . into_route( state) ;
1115+ return route. oneshot_inner_owned ( $req) ;
11171116 }
11181117 }
11191118 }
11201119 } ;
11211120 }
11221121
1123- let method = req. method ( ) . clone ( ) ;
1124-
11251122 // written with a pattern match like this to ensure we call all routes
11261123 let Self {
11271124 get,
@@ -1137,16 +1134,16 @@ where
11371134 allow_header,
11381135 } = self ;
11391136
1140- call ! ( req, method , HEAD , head) ;
1141- call ! ( req, method , HEAD , get) ;
1142- call ! ( req, method , GET , get) ;
1143- call ! ( req, method , POST , post) ;
1144- call ! ( req, method , OPTIONS , options) ;
1145- call ! ( req, method , PATCH , patch) ;
1146- call ! ( req, method , PUT , put) ;
1147- call ! ( req, method , DELETE , delete) ;
1148- call ! ( req, method , TRACE , trace) ;
1149- call ! ( req, method , CONNECT , connect) ;
1137+ call ! ( req, HEAD , head) ;
1138+ call ! ( req, HEAD , get) ;
1139+ call ! ( req, GET , get) ;
1140+ call ! ( req, POST , post) ;
1141+ call ! ( req, OPTIONS , options) ;
1142+ call ! ( req, PATCH , patch) ;
1143+ call ! ( req, PUT , put) ;
1144+ call ! ( req, DELETE , delete) ;
1145+ call ! ( req, TRACE , trace) ;
1146+ call ! ( req, CONNECT , connect) ;
11501147
11511148 let future = fallback. clone ( ) . call_with_state ( req, state) ;
11521149
0 commit comments