pub struct Ware<T> {
pub fns: Vec<Box<dyn Fn(WareArg<'_, T>)>>,
}
Expand description
A middleware chain.
Fields§
§fns: Vec<Box<dyn Fn(WareArg<'_, T>)>>
The internal list of middleware functions.
Implementations§
source§impl<T> Ware<T>
impl<T> Ware<T>
sourcepub fn new() -> Ware<T>
pub fn new() -> Ware<T>
Create a new middleware chain with a given type.
Example
use ware::Ware;
let mut chain: Ware<String> = Ware::new();
sourcepub fn wrap(&mut self, func: Box<dyn Fn(WareArg<'_, T>)>)
pub fn wrap(&mut self, func: Box<dyn Fn(WareArg<'_, T>)>)
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');
}))