[][src]Struct hyperx::header::Cookie

pub struct Cookie(_);

Cookie header, defined in RFC6265

If the user agent does attach a Cookie header field to an HTTP request, the user agent must send the cookie-string as the value of the header field.

When the user agent generates an HTTP request, the user agent MUST NOT attach more than one Cookie header field.

Example values

  • SID=31d4d96e407aad42
  • SID=31d4d96e407aad42; lang=en-US

Example

use hyperx::header::{Headers, Cookie};

let mut headers = Headers::new();
let mut cookie = Cookie::new();
cookie.append("foo", "bar");

assert_eq!(cookie.get("foo"), Some("bar"));

headers.set(cookie);

Methods

impl Cookie[src]

pub fn new() -> Cookie[src]

Creates a new Cookie header.

pub fn set<K, V>(&mut self, key: K, value: V) where
    K: Into<Cow<'static, str>>,
    V: Into<Cow<'static, str>>, 
[src]

Sets a name and value for the Cookie.

Note

This will remove all other instances with the same name, and insert the new value.

pub fn append<K, V>(&mut self, key: K, value: V) where
    K: Into<Cow<'static, str>>,
    V: Into<Cow<'static, str>>, 
[src]

Append a name and value for the Cookie.

Note

Cookies are allowed to set a name with a a value multiple times. For example:

use hyperx::header::Cookie;
let mut cookie = Cookie::new();
cookie.append("foo", "bar");
cookie.append("foo", "quux");
assert_eq!(cookie.to_string(), "foo=bar; foo=quux");

pub fn get(&self, key: &str) -> Option<&str>[src]

Get a value for the name, if it exists.

Note

Only returns the first instance found. To access any other values associated with the name, parse the str representation.

Important traits for CookieIter<'a>
pub fn iter(&self) -> CookieIter[src]

Iterate cookies.

Iterate cookie (key, value) in insertion order.

use hyperx::header::Cookie;
let mut cookie = Cookie::new();
cookie.append("foo", "bar");
cookie.append(String::from("dyn"), String::from("amic"));

let mut keys = Vec::new();
let mut values = Vec::new();
for (k, v) in cookie.iter() {
    keys.push(k);
    values.push(v);
}
assert_eq!(keys, vec!["foo", "dyn"]);
assert_eq!(values, vec!["bar", "amic"]);

Trait Implementations

impl StandardHeader for Cookie[src]

impl Header for Cookie[src]

impl Clone for Cookie[src]

impl PartialEq<Cookie> for Cookie[src]

impl Display for Cookie[src]

impl Debug for Cookie[src]

Auto Trait Implementations

impl Send for Cookie

impl Unpin for Cookie

impl Sync for Cookie

impl RefUnwindSafe for Cookie

impl UnwindSafe for Cookie

Blanket Implementations

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]