Struct persistent::Write
[−]
[src]
pub struct Write<P: Key> { // some fields omitted }
Middleware for data that persists between Requests for data which mostly needs to be written instead of read.
The data is stored behind a Mutex
, so only one request at a time can
access the data. This is more performant than State
in the case where
most uses of the data require a write lock.
Write
can be linked as BeforeMiddleware
to add data to the Request
extensions and it can be linked as an AfterMiddleware
to add data to
the Response
extensions.
Write
also implements Plugin
, so the data stored within can be
accessed through request.get::<Write<P>>()
as an Arc<Mutex<P::Value>>
.
Methods
impl<P: Key> Write<P> where P::Value: Send
[src]
fn both(start: P::Value) -> (Write<P>, Write<P>)
Construct a new pair of Write
that can be passed directly to Chain::link
.
The data is initialized with the passed-in value.
fn one(start: P::Value) -> Write<P>
Construct a new Write
that can be passed directly to
Chain::link_before
or Chain::link_after
.
The data is initialized with the passed-in value.
Trait Implementations
impl<P: Key> Clone for Write<P> where P::Value: Send
[src]
fn clone(&self) -> Write<P>
Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0
Performs copy-assignment from source
. Read more
impl<P: Key> Key for Write<P> where P::Value: 'static
[src]
impl<'a, 'b, P: Key> Plugin<Request<'a, 'b>> for Write<P> where P::Value: Send
[src]
type Error = PersistentError
The error type associated with this plugin.
fn eval(req: &mut Request<'a, 'b>) -> Result<Arc<Mutex<P::Value>>, PersistentError>
Create the plugin from an instance of the extended type. Read more
impl<P: Key> BeforeMiddleware for Write<P> where P::Value: Send
[src]
fn before(&self, req: &mut Request) -> IronResult<()>
Do whatever work this middleware should do with a Request
object.
fn catch(&self, &mut Request, err: IronError) -> Result<(), IronError>
Respond to an error thrown by a previous BeforeMiddleware
. Read more
impl<P: Key> AfterMiddleware for Write<P> where P::Value: Send
[src]
fn after(&self, _: &mut Request, res: Response) -> IronResult<Response>
Do whatever post-processing this middleware should do.
fn catch(&self, &mut Request, err: IronError) -> Result<Response, IronError>
Respond to an error thrown by previous AfterMiddleware
, the Handler
, or a BeforeMiddleware
. Read more