pub struct Router<Body, Data: Clone, Error> { /* private fields */ }
Expand description
A router that can be used as a Service
.
§Example
use std::convert::Infallible;
use http::{Request, Response, StatusCode};
use tower::Service;
use router_service::Router;
let mut router = Router::new()
.get("/", |_, _| async move {
Response::builder().body(())
});
let req = Request::get("/").body(()).unwrap();
let resp = router.call(req).await.unwrap();
assert_eq!(resp.status(), 200);
Implementations§
Source§impl<Body, Data, Error> Router<Body, Data, Error>where
Body: 'static,
Data: Clone + 'static,
Error: 'static,
impl<Body, Data, Error> Router<Body, Data, Error>where
Body: 'static,
Data: Clone + 'static,
Error: 'static,
Sourcepub fn with_data(data: Data) -> Self
pub fn with_data(data: Data) -> Self
Create a new router that requires data to be passed to handlers.
§Example
use std::convert::Infallible;
use http::{Request, Response, StatusCode};
use tower::Service;
use router_service::Router;
let mut router = Router::with_data(42)
.get("/", |_, data| async move {
println!("Got data! {}", data.data);
Response::builder().body(())
});
let req = Request::get("/").body(()).unwrap();
let resp = router.call(req).await.unwrap();
assert_eq!(resp.status(), 200);
Sourcepub fn get<HandlerFn, Fut>(
self,
path: impl AsRef<str>,
handler: HandlerFn,
) -> Self
pub fn get<HandlerFn, Fut>( self, path: impl AsRef<str>, handler: HandlerFn, ) -> Self
Registers a route requiring the GET
method.
Sourcepub fn post<HandlerFn, Fut>(
self,
path: impl AsRef<str>,
handler: HandlerFn,
) -> Self
pub fn post<HandlerFn, Fut>( self, path: impl AsRef<str>, handler: HandlerFn, ) -> Self
Registers a route requiring the POST
method.
Sourcepub fn put<HandlerFn, Fut>(
self,
path: impl AsRef<str>,
handler: HandlerFn,
) -> Self
pub fn put<HandlerFn, Fut>( self, path: impl AsRef<str>, handler: HandlerFn, ) -> Self
Registers a route requiring the PUT
method.
Sourcepub fn delete<HandlerFn, Fut>(
self,
path: impl AsRef<str>,
handler: HandlerFn,
) -> Self
pub fn delete<HandlerFn, Fut>( self, path: impl AsRef<str>, handler: HandlerFn, ) -> Self
Registers a route requiring the DELETE
method.
Sourcepub fn head<HandlerFn, Fut>(
self,
path: impl AsRef<str>,
handler: HandlerFn,
) -> Self
pub fn head<HandlerFn, Fut>( self, path: impl AsRef<str>, handler: HandlerFn, ) -> Self
Registers a route requiring the HEAD
method.
Sourcepub fn options<HandlerFn, Fut>(
self,
path: impl AsRef<str>,
handler: HandlerFn,
) -> Self
pub fn options<HandlerFn, Fut>( self, path: impl AsRef<str>, handler: HandlerFn, ) -> Self
Registers a route requiring the OPTIONS
method.
Trait Implementations§
Source§impl<Body: Default, Data: Default + Clone, Error: Default> Default for Router<Body, Data, Error>
impl<Body: Default, Data: Default + Clone, Error: Default> Default for Router<Body, Data, Error>
Source§impl<Body, Data, Error> Service<Request<Body>> for Router<Body, Data, Error>
impl<Body, Data, Error> Service<Request<Body>> for Router<Body, Data, Error>
Auto Trait Implementations§
impl<Body, Data, Error> Freeze for Router<Body, Data, Error>where
Data: Freeze,
impl<Body, Data, Error> RefUnwindSafe for Router<Body, Data, Error>where
Data: RefUnwindSafe,
impl<Body, Data, Error> Send for Router<Body, Data, Error>where
Data: Send,
impl<Body, Data, Error> Sync for Router<Body, Data, Error>where
Data: Sync,
impl<Body, Data, Error> Unpin for Router<Body, Data, Error>where
Data: Unpin,
impl<Body, Data, Error> UnwindSafe for Router<Body, Data, Error>where
Data: 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