Struct cookie::prefix::Host

source ·
pub struct Host;
Expand description

The "__Host-" cookie Prefix.

See Prefix and PrefixedJar for usage details.

Trait Implementations§

source§

impl Prefix for Host

source§

const PREFIX: &'static str = "__Host-"

The "__Host-" prefix string.

source§

fn conform(cookie: Cookie<'_>) -> Cookie<'_>

Modify cookie so it conforms to the prefix’s requirements.

Note: this method is called automatically by PrefixedJar. It does not need to and should not be called manually under normal circumstances.

According to RFC 6265bis-12 §4.1.3.2:

If a cookie's name begins with a case-sensitive match for the string
__Host-, then the cookie will have been set with a Secure attribute,
a Path attribute with a value of /, and no Domain attribute.

As such, to make a cookie conforn, this method:

§Example
use cookie::{CookieJar, Cookie, prefix::Host};

// A cookie with some non-conformant properties.
let cookie = Cookie::build(("name", "some-value"))
    .secure(false)
    .path("/foo/bar")
    .domain("rocket.rs")
    .http_only(true);

// Add the cookie to the jar.
let mut jar = CookieJar::new();
jar.prefixed_mut(Host).add(cookie);

// Fetch the cookie: notice it's been made to conform.
let cookie = jar.prefixed(Host).get("name").unwrap();
assert_eq!(cookie.name(), "name");
assert_eq!(cookie.value(), "some-value");
assert_eq!(cookie.secure(), Some(true));
assert_eq!(cookie.path(), Some("/"));
assert_eq!(cookie.domain(), None);
assert_eq!(cookie.http_only(), Some(true));
source§

const Host: Host = Host

Alias to Host.
source§

const Secure: Secure = Secure

Alias to Secure.
source§

impl Sealed for Host

Auto Trait Implementations§

§

impl Freeze for Host

§

impl RefUnwindSafe for Host

§

impl Send for Host

§

impl Sync for Host

§

impl Unpin for Host

§

impl UnwindSafe for Host

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

source§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.