pub struct CookieJar { /* private fields */ }Available on crate feature
cookie only.Expand description
A cooke jar that can be extracted from a handler.
Implementations§
Methods from Deref<Target = CookieJar>§
Sourcepub fn get(&self, name: &str) -> Option<&Cookie<'static>>
pub fn get(&self, name: &str) -> Option<&Cookie<'static>>
Returns a reference to the Cookie inside this jar with the name
name. If no such cookie exists, returns None.
§Example
use cookie::{CookieJar, Cookie};
let mut jar = CookieJar::new();
assert!(jar.get("name").is_none());
jar.add(("name", "value"));
assert_eq!(jar.get("name").map(|c| c.value()), Some("value"));Sourcepub fn delta(&self) -> Delta<'_>
pub fn delta(&self) -> Delta<'_>
Returns an iterator over cookies that represent the changes to this jar
over time. These cookies can be rendered directly as Set-Cookie header
values to affect the changes made to this jar on the client.
§Example
use cookie::{CookieJar, Cookie};
let mut jar = CookieJar::new();
jar.add_original(("name", "value"));
jar.add_original(("second", "two"));
// Add new cookies.
jar.add(("new", "third"));
jar.add(("another", "fourth"));
jar.add(("yac", "fifth"));
// Remove some cookies.
jar.remove(("name"));
jar.remove(("another"));
// Delta contains two new cookies ("new", "yac") and a removal ("name").
assert_eq!(jar.delta().count(), 3);Sourcepub fn iter(&self) -> Iter<'_>
pub fn iter(&self) -> Iter<'_>
Returns an iterator over all of the cookies present in this jar.
§Example
use cookie::{CookieJar, Cookie};
let mut jar = CookieJar::new();
jar.add_original(("name", "value"));
jar.add_original(("second", "two"));
jar.add(("new", "third"));
jar.add(("another", "fourth"));
jar.add(("yac", "fifth"));
jar.remove("name");
jar.remove("another");
// There are three cookies in the jar: "second", "new", and "yac".
for cookie in jar.iter() {
match cookie.name() {
"second" => assert_eq!(cookie.value(), "two"),
"new" => assert_eq!(cookie.value(), "third"),
"yac" => assert_eq!(cookie.value(), "fifth"),
_ => unreachable!("there are only three cookies in the jar")
}
}Sourcepub fn prefixed<'a, P>(&'a self, prefix: P) -> PrefixedJar<P, &'a CookieJar>where
P: Prefix,
pub fn prefixed<'a, P>(&'a self, prefix: P) -> PrefixedJar<P, &'a CookieJar>where
P: Prefix,
Returns a read-only PrefixedJar with self as its parent jar that
prefixes the name of cookies with prefix. Any retrievals from the
child jar will be made from the parent jar.
Note: Cookie prefixes are specified in an HTTP draft! Their meaning and definition are subject to change.
§Example
use cookie::CookieJar;
use cookie::prefix::{Host, Secure};
// Add a `Host` prefixed cookie.
let mut jar = CookieJar::new();
jar.prefixed_mut(Host).add(("h0st", "value"));
jar.prefixed_mut(Secure).add(("secur3", "value"));
// The cookie's name is prefixed in the parent jar.
assert!(matches!(jar.get("h0st"), None));
assert!(matches!(jar.get("__Host-h0st"), Some(_)));
assert!(matches!(jar.get("secur3"), None));
assert!(matches!(jar.get("__Secure-secur3"), Some(_)));
// The prefixed jar automatically removes the prefix.
assert_eq!(jar.prefixed(Host).get("h0st").unwrap().name(), "h0st");
assert_eq!(jar.prefixed(Host).get("h0st").unwrap().value(), "value");
assert_eq!(jar.prefixed(Secure).get("secur3").unwrap().name(), "secur3");
assert_eq!(jar.prefixed(Secure).get("secur3").unwrap().value(), "value");
// Only the correct prefixed jar retrieves the cookie.
assert!(matches!(jar.prefixed(Host).get("secur3"), None));
assert!(matches!(jar.prefixed(Secure).get("h0st"), None));Trait Implementations§
Source§impl FromContext for CookieJar
Available on crate feature server only.
impl FromContext for CookieJar
Available on crate feature
server only.Source§type Rejection = Infallible
type Rejection = Infallible
If the extractor fails, it will return this
Rejection type. Read moreSource§async fn from_context(
_cx: &mut ServerContext,
parts: &mut Parts,
) -> Result<Self, Self::Rejection>
async fn from_context( _cx: &mut ServerContext, parts: &mut Parts, ) -> Result<Self, Self::Rejection>
Extract the type from context.
Auto Trait Implementations§
impl Freeze for CookieJar
impl RefUnwindSafe for CookieJar
impl Send for CookieJar
impl Sync for CookieJar
impl Unpin for CookieJar
impl UnwindSafe for CookieJar
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