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.