Struct ware::im::Ware[][src]

pub struct Ware<T> {
    pub fns: Vec<Box<dyn Fn(T) -> T>>,
}
Expand description

A middleware chain.

Fields

fns: Vec<Box<dyn Fn(T) -> T>>

The internal list of middleware functions.

Implementations

Create a new middleware chain with a given type.

Example

use ware::im::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 the specified type and return the same specified type. It also has to be boxed for memory safety reasons.

Example

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

Run the registered middleware functions with the given value to pass through. Returns whatever the last registered middleware function returns.

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.

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.