| 398 | } |
| 399 | |
| 400 | fn merge_routes(routes: &mut FunctionRoutes, route: &Route) { |
| 401 | let methods = route.methods.clone().unwrap_or_default(); |
| 402 | match routes { |
| 403 | FunctionRoutes::Single(function) if !methods.is_empty() => { |
| 404 | let mut tmp = HashMap::new(); |
| 405 | for method in methods { |
| 406 | tmp.insert(method.clone(), function.clone()); |
| 407 | } |
| 408 | *routes = FunctionRoutes::Multiple(tmp); |
| 409 | } |
| 410 | FunctionRoutes::Multiple(_) if methods.is_empty() => { |
| 411 | *routes = FunctionRoutes::Single(route.function.clone()); |
| 412 | } |
| 413 | FunctionRoutes::Multiple(routes) => { |
| 414 | for method in methods { |
| 415 | routes.insert(method.clone(), route.function.clone()); |
| 416 | } |
| 417 | } |
| 418 | FunctionRoutes::Single(_) => { |
| 419 | *routes = FunctionRoutes::Single(route.function.clone()); |
| 420 | } |
| 421 | } |
| 422 | } |
| 423 | |
| 424 | fn decode_route(route: &Route) -> FunctionRoutes { |
| 425 | match &route.methods { |