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');
}))Auto Trait Implementations§
impl<T> Freeze for Ware<T>
impl<T> !RefUnwindSafe for Ware<T>
impl<T> !Send for Ware<T>
impl<T> !Sync for Ware<T>
impl<T> Unpin for Ware<T>
impl<T> !UnwindSafe for Ware<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more