Struct shtola::Ware[][src]

pub struct Ware<T> {
    pub fns: Vec<Box<dyn Fn(RefMut<'_, T>) + 'static, Global>, Global>,
}
Expand description

A middleware chain.

Fields

fns: Vec<Box<dyn Fn(RefMut<'_, T>) + 'static, Global>, Global>

The internal list of middleware functions.

Implementations

Create a new middleware chain with a given type.

Example

use ware::Ware;
let mut chain: Ware<String> = Ware::new();

Add a new middleware function to the internal function list. This function must be of the Fn trait, take a WareArg<T> and return a unit struct (aka. nothing). It also has to be boxed for memory safety reasons.

Example

use ware::Ware;
let mut chain: Ware<String> = Ware::new();
chain.wrap(Box::new(|mut st| {
    st.push('a');
}))

Run the registered middleware functions with the given value to pass through. Returns whatever the passed value will be after the last middleware function runs.

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.

Performs the conversion.

Should always be Self

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.