Struct dyer::plugin::middleware::MiddleWare[][src]

pub struct MiddleWare<'md, E> {
    pub marker: String,
    pub rank: i16,
    pub extensions: Extensions,
    // some fields omitted
}
Expand description

Represents a medium that handles the dataflow of App

In practise, it handles every data structure’s in-and-out during execution according to the marker and rank

Fields

marker: Stringrank: i16extensions: Extensions

Implementations

Create an instance of MiddleWareBuilder that used to build a MiddleWare

Examples
async fn handle_task(&mut Vec<Task>, &mut App<E>) {}
let middleware = Middleware::builder()
    .task(handle_task)
    .build("marker".into());

get the rank of MiddleWare

Examples
async fn handle_task(&mut Vec<Task>, &mut App<E>) {}
let middleware = MiddleWare::builder()
    .rank(1)
    .build("marker".into());
assert_eq!(middleware.rank(), 0);

get mutable reference to rank of MiddleWare

Examples
async fn handle_task(&mut Vec<Task>, &mut App<E>) {}
let middleware = MiddleWare::builder()
    .task(handle_task)
    .build("marker".into());
middleware.rank_mut() = 3;
assert_eq!(middleware.rank(), 3);

mutate the extensions of MiddleWare

Examples
let mut middleware = Middleware::builder()
    .extensions(1i32)
    .build("marker".into());
middleware.extension_mut().insert(2i32);

get extensions of MiddleWare

Examples
let middleware = Middleware::builder()
    .extensions(1i32)
    .build("marker".into());
assert_eq!(middleware.extensions().get::<i32>(), 1);

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 = MiddleWare::builder()
    .task_mut(&handle_task)
    .build("marker".into());
assert! (middleware.handle_task.is_some())

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 = MiddleWare::builder()
    .task_mut(&handle_task)
    .build("marker".into());
assert_eq! (middleware.task (), Some(handle_task))

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 = MiddleWare::builder()
    .affix_mut(&handle_affix)
    .build("marker".into());
assert! (middleware.handle_affix.is_some())

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 = MiddleWare::builder()
    .affix_mut(&handle_affix)
    .build("marker".into());
assert_eq! (middleware.affix (), Some(handle_affix))

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 = MiddleWare::builder()
    .entity_mut(&handle_entity)
    .build("marker".into());
assert! (middleware.handle_entity.is_some())

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 = MiddleWare::builder()
    .entity_mut(&handle_entity)
    .build("marker".into());
assert_eq! (middleware.entity (), Some(handle_entity))

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 = MiddleWare::builder()
    .req_mut(&handle_req)
    .build("marker".into());
assert! (middleware.handle_req.is_some())

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 = MiddleWare::builder()
    .req_mut(&handle_req)
    .build("marker".into());
assert_eq! (middleware.req (), Some(handle_req))

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 = MiddleWare::builder()
    .res_mut(&handle_res)
    .build("marker".into());
assert! (middleware.handle_res.is_some())

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 = MiddleWare::builder()
    .res_mut(&handle_res)
    .build("marker".into());
assert_eq! (middleware.res (), Some(handle_res))

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 = MiddleWare::builder()
    .err_mut(&handle_err)
    .build("marker".into());
assert! (middleware.handle_err.is_some())

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 = MiddleWare::builder()
    .err_mut(&handle_err)
    .build("marker".into());
assert_eq! (middleware.err (), Some(handle_err))

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 = MiddleWare::builder()
    .yerr_mut(&handle_yerr)
    .build("marker".into());
assert! (middleware.handle_yerr.is_some())

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 = MiddleWare::builder()
    .yerr_mut(&handle_yerr)
    .build("marker".into());
assert_eq! (middleware.yerr (), Some(handle_yerr))

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more