tower_web/routing/
builder.rs

1use super::{Route, RouteSet};
2
3use std::mem;
4
5/// Build a set of routes
6#[derive(Debug)]
7pub struct Builder<T> {
8    routes: RouteSet<T>,
9}
10
11impl<T> Builder<T> {
12    /// Create a new `Builder` instance
13    pub fn new() -> Self {
14        Builder {
15            routes: RouteSet::new(),
16        }
17    }
18
19    /// Insert a route into the route set
20    pub fn insert(&mut self, route: Route<T>) -> &mut Self {
21        self.routes.insert(route);
22        self
23    }
24
25    pub(crate) fn insert_all(&mut self, set: RouteSet<T>) -> &mut Self {
26        self.routes.insert_all(set);
27        self
28    }
29
30    /// Finalize the route set
31    pub fn build(&mut self) -> RouteSet<T> {
32        mem::replace(&mut self.routes, RouteSet::new())
33    }
34}