Struct persistent::Read [] [src]

pub struct Read<P: Key> {
    // some fields omitted
}

Middleware for data that persists between Requests with read-only capabilities.

The data is stored behind an Arc, so multiple threads can have concurrent, non-blocking access.

Read 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.

Read also implements Plugin, so the data stored within can be accessed through request.get::<Read<P>>() as an Arc<P::Value>.

Methods

impl<P: Key> Read<P> where P::Value: Send + Sync
[src]

fn both(start: P::Value) -> (Read<P>, Read<P>)

Construct a new pair of Read that can be passed directly to Chain::link.

The data is initialized with the passed-in value.

fn one(start: P::Value) -> Read<P>

Construct a new Read 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 Read<P> where P::Value: Send + Sync
[src]

fn clone(&self) -> Read<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 Read<P> where P::Value: 'static
[src]

type Value = Arc<P::Value>

The value type associated with this key type.

impl<'a, 'b, P: Key> Plugin<Request<'a, 'b>> for Read<P> where P::Value: Send + Sync
[src]

type Error = PersistentError

The error type associated with this plugin.

fn eval(req: &mut Request<'a, 'b>) -> Result<Arc<P::Value>, PersistentError>

Create the plugin from an instance of the extended type. Read more

impl<P: Key> BeforeMiddleware for Read<P> where P::Value: Send + Sync
[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 Read<P> where P::Value: Send + Sync
[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<ResponseIronError>

Respond to an error thrown by previous AfterMiddleware, the Handler, or a BeforeMiddleware. Read more