hyper_routing/builder.rs
1use super::Route;
2use super::Router;
3
4/// Builder for a router
5///
6/// Example usage:
7///
8#[derive(Debug, Default)]
9pub struct RouterBuilder {
10 routes: Vec<Route>,
11}
12
13impl RouterBuilder {
14 pub fn new() -> RouterBuilder {
15 RouterBuilder { routes: vec![] }
16 }
17
18 /// Adds new `Route` for `Router` that is being built.
19 ///
20 /// Example:
21 ///
22 /// ```ignore
23 /// use hyper::server::{Request, Response};
24 /// use hyper_router::{Route, RouterBuilder};
25 ///
26 /// fn some_handler(_: Request) -> Response {
27 /// // do something
28 /// }
29 ///
30 /// RouterBuilder::new().add(Route::get(r"/person/\d+").using(some_handler));
31 /// ```
32 #[allow(clippy::should_implement_trait)]
33 pub fn add(mut self, route: Route) -> RouterBuilder {
34 self.routes.push(route);
35 self
36 }
37
38 pub fn build(self) -> Router {
39 Router {
40 routes: self.routes,
41 }
42 }
43}