pub struct RouterBuilder<T: Clone> { /* private fields */ }Expand description
Router builder
Implementations§
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?
More examples
examples/small-router-context.rs (line 37)
33fn main() {
34 let ctx = Context {
35 data: "Data".to_string(),
36 };
37 let router = RouterBuilder::with(ctx)
38 .get("/", home)
39 .get("/about", about)
40 .fallback(not_found)
41 .build();
42
43 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
44 .unwrap_or_else(|_| panic!("Can't bind to port"));
45 small_http::serve(listener, move |req| router.handle(req));
46}examples/small-router-layers.rs (line 55)
51fn main() {
52 let ctx = Context {
53 data: "Data".to_string(),
54 };
55 let router = RouterBuilder::with(ctx)
56 .pre_layer(cors_pre_layer)
57 .post_layer(cors_post_layer)
58 .get("/", home)
59 .get("/about", about)
60 .fallback(not_found)
61 .build();
62
63 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
64 .unwrap_or_else(|_| panic!("Can't bind to port"));
65 small_http::serve(listener, move |req| router.handle(req));
66}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 56)
51fn main() {
52 let ctx = Context {
53 data: "Data".to_string(),
54 };
55 let router = RouterBuilder::with(ctx)
56 .pre_layer(cors_pre_layer)
57 .post_layer(cors_post_layer)
58 .get("/", home)
59 .get("/about", about)
60 .fallback(not_found)
61 .build();
62
63 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
64 .unwrap_or_else(|_| panic!("Can't bind to port"));
65 small_http::serve(listener, move |req| router.handle(req));
66}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 57)
51fn main() {
52 let ctx = Context {
53 data: "Data".to_string(),
54 };
55 let router = RouterBuilder::with(ctx)
56 .pre_layer(cors_pre_layer)
57 .post_layer(cors_post_layer)
58 .get("/", home)
59 .get("/about", about)
60 .fallback(not_found)
61 .build();
62
63 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
64 .unwrap_or_else(|_| panic!("Can't bind to port"));
65 small_http::serve(listener, move |req| router.handle(req));
66}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-context.rs (line 38)
33fn main() {
34 let ctx = Context {
35 data: "Data".to_string(),
36 };
37 let router = RouterBuilder::with(ctx)
38 .get("/", home)
39 .get("/about", about)
40 .fallback(not_found)
41 .build();
42
43 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
44 .unwrap_or_else(|_| panic!("Can't bind to port"));
45 small_http::serve(listener, move |req| router.handle(req));
46}examples/small-router-layers.rs (line 58)
51fn main() {
52 let ctx = Context {
53 data: "Data".to_string(),
54 };
55 let router = RouterBuilder::with(ctx)
56 .pre_layer(cors_pre_layer)
57 .post_layer(cors_post_layer)
58 .get("/", home)
59 .get("/about", about)
60 .fallback(not_found)
61 .build();
62
63 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
64 .unwrap_or_else(|_| panic!("Can't bind to port"));
65 small_http::serve(listener, move |req| router.handle(req));
66}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-context.rs (line 40)
33fn main() {
34 let ctx = Context {
35 data: "Data".to_string(),
36 };
37 let router = RouterBuilder::with(ctx)
38 .get("/", home)
39 .get("/about", about)
40 .fallback(not_found)
41 .build();
42
43 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
44 .unwrap_or_else(|_| panic!("Can't bind to port"));
45 small_http::serve(listener, move |req| router.handle(req));
46}examples/small-router-layers.rs (line 60)
51fn main() {
52 let ctx = Context {
53 data: "Data".to_string(),
54 };
55 let router = RouterBuilder::with(ctx)
56 .pre_layer(cors_pre_layer)
57 .post_layer(cors_post_layer)
58 .get("/", home)
59 .get("/about", about)
60 .fallback(not_found)
61 .build();
62
63 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
64 .unwrap_or_else(|_| panic!("Can't bind to port"));
65 small_http::serve(listener, move |req| router.handle(req));
66}Sourcepub fn build(self) -> Router<T>
pub fn build(self) -> Router<T>
Build router
Examples found in repository?
More examples
examples/small-router-context.rs (line 41)
33fn main() {
34 let ctx = Context {
35 data: "Data".to_string(),
36 };
37 let router = RouterBuilder::with(ctx)
38 .get("/", home)
39 .get("/about", about)
40 .fallback(not_found)
41 .build();
42
43 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
44 .unwrap_or_else(|_| panic!("Can't bind to port"));
45 small_http::serve(listener, move |req| router.handle(req));
46}examples/small-router-layers.rs (line 61)
51fn main() {
52 let ctx = Context {
53 data: "Data".to_string(),
54 };
55 let router = RouterBuilder::with(ctx)
56 .pre_layer(cors_pre_layer)
57 .post_layer(cors_post_layer)
58 .get("/", home)
59 .get("/about", about)
60 .fallback(not_found)
61 .build();
62
63 let listener = TcpListener::bind((Ipv4Addr::LOCALHOST, 8080))
64 .unwrap_or_else(|_| panic!("Can't bind to port"));
65 small_http::serve(listener, move |req| router.handle(req));
66}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