Macro rouille::find_route

source ·
macro_rules! find_route {
    ($($handler:expr),+) => { ... };
}
Expand description

Evaluates each parameter until one of them evaluates to something else than a 404 error code.

This macro supposes that each route returns a Response.

Example

use rouille::{Request, Response};

fn handle_request_a(_: &Request) -> Response {
   // ...
}

fn handle_request_b(_: &Request) -> Response {
   // ...
}

fn handle_request_c(_: &Request) -> Response {
   // ...
}

// First calls `handle_request_a`. If it returns anything else than a 404 error, then the
// `response` will contain the return value.
//
// Instead if `handle_request_a` returned a 404 error, then `handle_request_b` is tried.
// If `handle_request_b` also returns a 404 error, then `handle_request_c` is tried.
let response = find_route!(
    handle_request_a(request),
    handle_request_b(request),
    handle_request_c(request)
);