Struct persistent::State
[−]
[src]
pub struct State<P: Key> { // some fields omitted }
Middleware for data that persists between requests with read and write capabilities.
The data is stored behind a RwLock
, so multiple read locks
can be taken out concurrently.
If most threads need to take out a write lock, you may want to
consider Write
, which stores the data behind a Mutex
, which
has a faster locking speed.
State
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.
State
also implements Plugin
, so the data stored within can be
accessed through request.get::<State<P>>()
as an Arc<RwLock<P::Value>>
.
Methods
impl<P: Key> State<P> where P::Value: Send + Sync
fn both(start: P::Value) -> (State<P>, State<P>)
Construct a new pair of State
that can be passed directly to Chain::link
.
The data is initialized with the passed-in value.
fn one(start: P::Value) -> State<P>
Construct a new State
that can be passed directly to
Chain::link_before
or Chain::link_after
.
The data is initialized with the passed-in value.