MCPcopy Create free account
hub / github.com/cargo-lambda/cargo-lambda / merge_routes

Function merge_routes

crates/cargo-lambda-metadata/src/cargo/watch.rs:400–422  ·  view source on GitHub ↗
(routes: &mut FunctionRoutes, route: &Route)

Source from the content-addressed store, hash-verified

398}
399
400fn 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
424fn decode_route(route: &Route) -> FunctionRoutes {
425 match &route.methods {

Callers 1

visit_seqMethod · 0.85

Calls 3

newFunction · 0.85
insertMethod · 0.80
is_emptyMethod · 0.45

Tested by

no test coverage detected