pub struct RouterBuilder<T: Clone> { /* private fields */ }
Expand description
Router builder
Implementations§
Source§impl RouterBuilder<()>
impl RouterBuilder<()>
Sourcepub fn new() -> Self
pub fn new() -> Self
Create new router
Examples found in repository?
More examples
examples/small-router-layers.rs (line 47)
46fn main() {
47 let router = RouterBuilder::new()
48 .pre_layer(cors_pre_layer)
49 .post_layer(cors_post_layer)
50 .get("/", home)
51 .get("/about", about)
52 .fallback(not_found)
53 .build();
54
55 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
56 .unwrap_or_else(|_| panic!("Can't bind to port"));
57 small_http::serve(listener, move |req| router.handle(req));
58}
Source§impl<T: Clone> RouterBuilder<T>
impl<T: Clone> RouterBuilder<T>
Sourcepub fn with(ctx: T) -> Self
pub fn with(ctx: T) -> Self
Create new router with context
Examples found in repository?
examples/small-router-context.rs (line 48)
44fn main() {
45 let ctx = Context {
46 shared_data: Arc::new(RwLock::new("Hello".to_string())),
47 };
48 let router = RouterBuilder::with(ctx)
49 .get("/", home)
50 .get("/about", about)
51 .fallback(not_found)
52 .build();
53
54 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
55 .unwrap_or_else(|_| panic!("Can't bind to port"));
56 small_http::serve(listener, move |req| router.handle(req));
57}
Sourcepub fn pre_layer(self, layer: fn(&Request, &mut T) -> Option<Response>) -> Self
pub fn pre_layer(self, layer: fn(&Request, &mut T) -> Option<Response>) -> Self
Add pre layer
Examples found in repository?
examples/small-router-layers.rs (line 48)
46fn main() {
47 let router = RouterBuilder::new()
48 .pre_layer(cors_pre_layer)
49 .post_layer(cors_post_layer)
50 .get("/", home)
51 .get("/about", about)
52 .fallback(not_found)
53 .build();
54
55 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
56 .unwrap_or_else(|_| panic!("Can't bind to port"));
57 small_http::serve(listener, move |req| router.handle(req));
58}
Sourcepub fn post_layer(
self,
layer: fn(&Request, &mut T, Response) -> Response,
) -> Self
pub fn post_layer( self, layer: fn(&Request, &mut T, Response) -> Response, ) -> Self
Add post layer
Examples found in repository?
examples/small-router-layers.rs (line 49)
46fn main() {
47 let router = RouterBuilder::new()
48 .pre_layer(cors_pre_layer)
49 .post_layer(cors_post_layer)
50 .get("/", home)
51 .get("/about", about)
52 .fallback(not_found)
53 .build();
54
55 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
56 .unwrap_or_else(|_| panic!("Can't bind to port"));
57 small_http::serve(listener, move |req| router.handle(req));
58}
Sourcepub fn route(
self,
methods: &[Method],
route: String,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn route( self, methods: &[Method], route: String, handler: fn(&Request, &T) -> Response, ) -> Self
Add route
Sourcepub fn any(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn any( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for any method
Sourcepub fn get(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn get( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for GET method
Examples found in repository?
More examples
examples/small-router-layers.rs (line 50)
46fn main() {
47 let router = RouterBuilder::new()
48 .pre_layer(cors_pre_layer)
49 .post_layer(cors_post_layer)
50 .get("/", home)
51 .get("/about", about)
52 .fallback(not_found)
53 .build();
54
55 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
56 .unwrap_or_else(|_| panic!("Can't bind to port"));
57 small_http::serve(listener, move |req| router.handle(req));
58}
examples/small-router-context.rs (line 49)
44fn main() {
45 let ctx = Context {
46 shared_data: Arc::new(RwLock::new("Hello".to_string())),
47 };
48 let router = RouterBuilder::with(ctx)
49 .get("/", home)
50 .get("/about", about)
51 .fallback(not_found)
52 .build();
53
54 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
55 .unwrap_or_else(|_| panic!("Can't bind to port"));
56 small_http::serve(listener, move |req| router.handle(req));
57}
Sourcepub fn head(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn head( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for HEAD method
Sourcepub fn post(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn post( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for POST method
Sourcepub fn put(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn put( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for PUT method
Sourcepub fn delete(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn delete( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for DELETE method
Sourcepub fn connect(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn connect( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for CONNECT method
Sourcepub fn options(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn options( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for OPTIONS method
Sourcepub fn trace(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn trace( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for TRACE method
Sourcepub fn patch(
self,
route: impl Into<String>,
handler: fn(&Request, &T) -> Response,
) -> Self
pub fn patch( self, route: impl Into<String>, handler: fn(&Request, &T) -> Response, ) -> Self
Add route for PATCH method
Sourcepub fn fallback(self, handler: fn(&Request, &T) -> Response) -> Self
pub fn fallback(self, handler: fn(&Request, &T) -> Response) -> Self
Set fallback handler
Examples found in repository?
More examples
examples/small-router-layers.rs (line 52)
46fn main() {
47 let router = RouterBuilder::new()
48 .pre_layer(cors_pre_layer)
49 .post_layer(cors_post_layer)
50 .get("/", home)
51 .get("/about", about)
52 .fallback(not_found)
53 .build();
54
55 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
56 .unwrap_or_else(|_| panic!("Can't bind to port"));
57 small_http::serve(listener, move |req| router.handle(req));
58}
examples/small-router-context.rs (line 51)
44fn main() {
45 let ctx = Context {
46 shared_data: Arc::new(RwLock::new("Hello".to_string())),
47 };
48 let router = RouterBuilder::with(ctx)
49 .get("/", home)
50 .get("/about", about)
51 .fallback(not_found)
52 .build();
53
54 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
55 .unwrap_or_else(|_| panic!("Can't bind to port"));
56 small_http::serve(listener, move |req| router.handle(req));
57}
Sourcepub fn build(self) -> Router<T>
pub fn build(self) -> Router<T>
Build router
Examples found in repository?
More examples
examples/small-router-layers.rs (line 53)
46fn main() {
47 let router = RouterBuilder::new()
48 .pre_layer(cors_pre_layer)
49 .post_layer(cors_post_layer)
50 .get("/", home)
51 .get("/about", about)
52 .fallback(not_found)
53 .build();
54
55 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
56 .unwrap_or_else(|_| panic!("Can't bind to port"));
57 small_http::serve(listener, move |req| router.handle(req));
58}
examples/small-router-context.rs (line 52)
44fn main() {
45 let ctx = Context {
46 shared_data: Arc::new(RwLock::new("Hello".to_string())),
47 };
48 let router = RouterBuilder::with(ctx)
49 .get("/", home)
50 .get("/about", about)
51 .fallback(not_found)
52 .build();
53
54 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
55 .unwrap_or_else(|_| panic!("Can't bind to port"));
56 small_http::serve(listener, move |req| router.handle(req));
57}
Trait Implementations§
Auto Trait Implementations§
impl<T> Freeze for RouterBuilder<T>where
T: Freeze,
impl<T> RefUnwindSafe for RouterBuilder<T>where
T: RefUnwindSafe,
impl<T> Send for RouterBuilder<T>where
T: Send,
impl<T> Sync for RouterBuilder<T>where
T: Sync,
impl<T> Unpin for RouterBuilder<T>where
T: Unpin,
impl<T> UnwindSafe for RouterBuilder<T>where
T: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more