rouille::find_route
[−]
[src]
macro_rules! find_route { ($($handler:expr),+) => { ... }; }
Evaluates each parameter until one of them evaluates to something else
than Err(RouteError::NoRouteFound)
.
This macro supposes that each route returns a Result<_, RouteError>
.
Example
use rouille::{Request, Response, RouteError}; fn handle_request_a(_: &Request) -> Result<Response, RouteError> { // ... } fn handle_request_b(_: &Request) -> Result<Response, RouteError> { // ... } fn handle_request_c(_: &Request) -> Result<Response, RouteError> { // ... } // First calls `handle_request_a`. If it returns anything else than `NoRouteFound`, then the // `response` will contain the return value. // // Instead if `handle_request_a` returned `NoRouteFound`, then `handle_request_b` is tried. // If `handle_request_b` also returns `NoRouteFound`, then `handle_request_c` is tried. let response = find_route!( handle_request_a(request), handle_request_b(request), handle_request_c(request) );