pub struct MiddleWareBuilder<'md, E> { /* private fields */ }Expand description
Serve as an medium to create an instance of MiddleWare
This type can be used to construct an instance or MiddleWare through a builder-like pattern.
Implementations§
Source§impl<'md, E> MiddleWareBuilder<'md, E>
impl<'md, E> MiddleWareBuilder<'md, E>
Sourcepub fn new() -> Self
pub fn new() -> Self
Create an instance of MiddleWare
§Examples
let middleware = MiddlewareBuilder::new();
assert!(middleware.entity_ref().is_none());Sourcepub fn build<T: Into<String>>(self, marker: T) -> MiddleWare<'md, E>
pub fn build<T: Into<String>>(self, marker: T) -> MiddleWare<'md, E>
Consume it and return an instance of MiddleWare
§Examples
async fn handle_entity(_: &mut Vec<E>, _: &mut App<E>) {}
let middleware = MiddlewareBuilder::new();
.entity(handle_entity)
.build("marker");Sourcepub fn extensions<S>(self, extensions: S) -> Self
pub fn extensions<S>(self, extensions: S) -> Self
set the extensions of MiddleWareBuilder
§Examples
let middleware = middleware::builder()
.extensions(1i32)
.build("marker");
assert_eq!(middleware.extensions().get::<i32>(), 1);Sourcepub fn extensions_ref(&self) -> &Extensions
pub fn extensions_ref(&self) -> &Extensions
get extensions of MiddleWareBuilder
§Examples
let middleware = middleware::builder()
.extensions(1i32)
.build("marker");
assert_eq!(middleware.extensions_ref().get::<i32>(), 1);Sourcepub fn rank(self, rank: i16) -> Self
pub fn rank(self, rank: i16) -> Self
set the rank of MiddleWareBuilder
§Examples
let middleware = MiddleWareBuilder::new()
.rank(1)
.build("marker");
assert_eq!(middleware.rank_ref(), 1);Sourcepub fn rank_ref(&self) -> i16
pub fn rank_ref(&self) -> i16
get rank of MiddleWareBuilder
§Examples
let middleware = MiddleWareBuilder::new()
.rank(1)
.build("marker");
middleware.rank_mut() = 3;
assert_eq!(middleware.rank_ref(), 3);Sourcepub fn task(
self,
task: &'md dyn for<'a> Fn(&'a mut Vec<Task>, &'a mut App<E>) -> BoxFuture<'a, ()>,
) -> Self
pub fn task( self, task: &'md dyn for<'a> Fn(&'a mut Vec<Task>, &'a mut App<E>) -> BoxFuture<'a, ()>, ) -> Self
Set the Task handler of MiddleWare, if not called, the default value is None
§Examples
async fn handle_task(_: &mut Vec<Task>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.task(&handle_task)
.build("marker");
assert! (middleware.handle_task.is_some())Sourcepub fn task_ref(
&self,
) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Task>, &'a mut App<E>) -> BoxFuture<'a, ()>>
pub fn task_ref( &self, ) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Task>, &'a mut App<E>) -> BoxFuture<'a, ()>>
Get the shared reference of Task handler of MiddleWare, if not set before, None is returned
§Examples
async fn handle_task(_: &mut Vec<Task>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.task(&handle_task)
.build("marker");
assert_eq! (middleware.task_ref (), Some(handle_task))Sourcepub fn affix(
self,
affix: &'md dyn for<'a> Fn(&'a mut Vec<Affix>, &'a mut App<E>) -> BoxFuture<'a, ()>,
) -> Self
pub fn affix( self, affix: &'md dyn for<'a> Fn(&'a mut Vec<Affix>, &'a mut App<E>) -> BoxFuture<'a, ()>, ) -> Self
Set the Affix handler of MiddleWare, if not called, the default value is None
§Examples
async fn handle_affix(_: &mut Vec<Affix>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.affix(&handle_affix)
.build("marker");
assert! (middleware.handle_affix.is_some())Sourcepub fn affix_ref(
&self,
) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Affix>, &'a mut App<E>) -> BoxFuture<'a, ()>>
pub fn affix_ref( &self, ) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Affix>, &'a mut App<E>) -> BoxFuture<'a, ()>>
Get the shared reference of Affix handler of MiddleWare, if not set before, None is returned
§Examples
async fn handle_affix(_: &mut Vec<Affix>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.affix(&handle_affix)
.build("marker");
assert_eq! (middleware.affix_ref (), Some(handle_affix))Sourcepub fn entity(
self,
entity: &'md dyn for<'a> Fn(&'a mut Vec<E>, &'a mut App<E>) -> BoxFuture<'a, ()>,
) -> Self
pub fn entity( self, entity: &'md dyn for<'a> Fn(&'a mut Vec<E>, &'a mut App<E>) -> BoxFuture<'a, ()>, ) -> Self
Set the E handler of MiddleWare, if not called, the default value is None
§Examples
async fn handle_entity(_: &mut Vec<E>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.entity(&handle_entity)
.build("marker");
assert! (middleware.handle_entity.is_some())Sourcepub fn entity_ref(
&self,
) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<E>, &'a mut App<E>) -> BoxFuture<'a, ()>>
pub fn entity_ref( &self, ) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<E>, &'a mut App<E>) -> BoxFuture<'a, ()>>
Get the shared reference of E handler of MiddleWare, if not set before, None is returned
§Examples
async fn handle_entity(_: &mut Vec<E>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.entity(&handle_entity)
.build("marker");
assert_eq! (middleware.entity_ref (), Some(handle_entity))Sourcepub fn req(
self,
req: &'md dyn for<'a> Fn(&'a mut Vec<Request>, &'a mut App<E>) -> BoxFuture<'a, ()>,
) -> Self
pub fn req( self, req: &'md dyn for<'a> Fn(&'a mut Vec<Request>, &'a mut App<E>) -> BoxFuture<'a, ()>, ) -> Self
Set the Request handler of MiddleWare, if not called, the default value is None
§Examples
async fn handle_req(_: &mut Vec<Request>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.req(&handle_req)
.build("marker");
assert! (middleware.handle_req.is_some())Sourcepub fn req_ref(
&self,
) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Request>, &'a mut App<E>) -> BoxFuture<'a, ()>>
pub fn req_ref( &self, ) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Request>, &'a mut App<E>) -> BoxFuture<'a, ()>>
Get the shared reference of Request handler of MiddleWare, if not set before, None is returned
§Examples
async fn handle_req(_: &mut Vec<Request>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.req(&handle_req)
.build("marker");
assert_eq! (middleware.req_ref (), Some(handle_req))Sourcepub fn res(
self,
res: &'md dyn for<'a> Fn(&'a mut Vec<Response>, &'a mut App<E>) -> BoxFuture<'a, ()>,
) -> Self
pub fn res( self, res: &'md dyn for<'a> Fn(&'a mut Vec<Response>, &'a mut App<E>) -> BoxFuture<'a, ()>, ) -> Self
Set the Response handler of MiddleWare, if not called, the default value is None
§Examples
async fn handle_res(_: &mut Vec<Response>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.res(&handle_res)
.build("marker");
assert! (middleware.handle_res.is_some())Sourcepub fn res_ref(
&self,
) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Response>, &'a mut App<E>) -> BoxFuture<'a, ()>>
pub fn res_ref( &self, ) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Response>, &'a mut App<E>) -> BoxFuture<'a, ()>>
Get the shared reference of Response handler of MiddleWare, if not set before, None is returned
§Examples
async fn handle_res(_: &mut Vec<Response>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.res(&handle_res)
.build("marker");
assert_eq! (middleware.res_ref (), Some(handle_res))Sourcepub fn err(
self,
err: &'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>,
) -> Self
pub fn err( self, err: &'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>, ) -> Self
Set the Result<Response, MetaResponse> handler of MiddleWare, if not called, the default value is None
§Examples
async fn handle_err(_: &mut Vec<Result<Response, MetaResponse>>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.err(&handle_err)
.build("marker");
assert! (middleware.handle_err.is_some())Sourcepub fn err_ref(
&self,
) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>>
pub fn err_ref( &self, ) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>>
Get the shared reference of Result<Response, MetaResponse> handler of MiddleWare, if not set before, None is returned
§Examples
async fn handle_err(_: &mut Vec<Result<Response, MetaResponse>>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.err(&handle_err)
.build("marker");
assert_eq! (middleware.err_ref (), Some(handle_err))Sourcepub fn yerr(
self,
yerr: &'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>,
) -> Self
pub fn yerr( self, yerr: &'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>, ) -> Self
Set the Result<Response, MetaResponse> handler of MiddleWare, if not called, the default value is None
§Examples
async fn handle_yerr(_: &mut Vec<Result<Response, MetaResponse>>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.yerr(&handle_yerr)
.build("marker");
assert! (middleware.handle_yerr.is_some())Sourcepub fn yerr_ref(
&self,
) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>>
pub fn yerr_ref( &self, ) -> Option<&'md dyn for<'a> Fn(&'a mut Vec<Result<Response, MetaResponse>>, &'a mut App<E>) -> BoxFuture<'a, ()>>
Get the shared reference of Result<Response, MetaResponse> handler of MiddleWare, if not set before, None is returned
§Examples
async fn handle_yerr(_: &mut Vec<Result<Response, MetaResponse>>, _: &mut App<E>) {}
let middleware = MiddleWareBuilder::new()
.yerr(&handle_yerr)
.build("marker");
assert_eq! (middleware.yerr_ref (), Some(handle_yerr))