Struct cookie_store::Cookie [−][src]
A cookie conforming more closely to IETF RFC6265
Fields
path: CookiePath
The Path attribute from a Set-Cookie header or the default-path as determined from the request-uri
domain: CookieDomain
The Domain attribute from a Set-Cookie header, or a HostOnly variant if no non-empty Domain attribute found
expires: CookieExpiration
For a persistent Cookie (see IETF RFC6265 Section
5.3),
the expiration time as defined by the Max-Age or Expires attribute,
otherwise SessionEnd,
indicating a non-persistent Cookie
that should expire at the end of the
session
Implementations
impl<'a> Cookie<'a>
[src]
pub fn matches(&self, request_url: &Url) -> bool
[src]
Whether this Cookie
should be included for request_url
pub fn is_persistent(&self) -> bool
[src]
Should this Cookie
be persisted across sessions?
pub fn expire(&mut self)
[src]
Expire this cookie
pub fn is_expired(&self) -> bool
[src]
Return whether the Cookie
is expired now
pub fn expires_by(&self, utc_tm: &OffsetDateTime) -> bool
[src]
Indicates if the Cookie
expires as of utc_tm
.
pub fn parse<S>(cookie_str: S, request_url: &Url) -> CookieResult<'a> where
S: Into<Cow<'a, str>>,
[src]
S: Into<Cow<'a, str>>,
Parses a new cookie_store::Cookie
from cookie_str
.
pub fn try_from_raw_cookie(
raw_cookie: &RawCookie<'a>,
request_url: &Url
) -> CookieResult<'a>
[src]
raw_cookie: &RawCookie<'a>,
request_url: &Url
) -> CookieResult<'a>
Create a new cookie_store::Cookie
from a cookie::Cookie
(from the cookie
crate)
received from request_url
.
pub fn into_owned(self) -> Cookie<'static>
[src]
Methods from Deref<Target = RawCookie<'a>>
pub fn name(&self) -> &str
[src]
Returns the name of self
.
Example
use cookie::Cookie; let c = Cookie::new("name", "value"); assert_eq!(c.name(), "name");
pub fn value(&self) -> &str
[src]
Returns the value of self
.
Example
use cookie::Cookie; let c = Cookie::new("name", "value"); assert_eq!(c.value(), "value");
pub fn name_value(&self) -> (&str, &str)
[src]
Returns the name and value of self
as a tuple of (name, value)
.
Example
use cookie::Cookie; let c = Cookie::new("name", "value"); assert_eq!(c.name_value(), ("name", "value"));
pub fn http_only(&self) -> Option<bool>
[src]
Returns whether this cookie was marked HttpOnly
or not. Returns
Some(true)
when the cookie was explicitly set (manually or parsed) as
HttpOnly
, Some(false)
when http_only
was manually set to false
,
and None
otherwise.
Example
use cookie::Cookie; let c = Cookie::parse("name=value; httponly").unwrap(); assert_eq!(c.http_only(), Some(true)); let mut c = Cookie::new("name", "value"); assert_eq!(c.http_only(), None); let mut c = Cookie::new("name", "value"); assert_eq!(c.http_only(), None); // An explicitly set "false" value. c.set_http_only(false); assert_eq!(c.http_only(), Some(false)); // An explicitly set "true" value. c.set_http_only(true); assert_eq!(c.http_only(), Some(true));
pub fn secure(&self) -> Option<bool>
[src]
Returns whether this cookie was marked Secure
or not. Returns
Some(true)
when the cookie was explicitly set (manually or parsed) as
Secure
, Some(false)
when secure
was manually set to false
, and
None
otherwise.
Example
use cookie::Cookie; let c = Cookie::parse("name=value; Secure").unwrap(); assert_eq!(c.secure(), Some(true)); let mut c = Cookie::parse("name=value").unwrap(); assert_eq!(c.secure(), None); let mut c = Cookie::new("name", "value"); assert_eq!(c.secure(), None); // An explicitly set "false" value. c.set_secure(false); assert_eq!(c.secure(), Some(false)); // An explicitly set "true" value. c.set_secure(true); assert_eq!(c.secure(), Some(true));
pub fn same_site(&self) -> Option<SameSite>
[src]
Returns the SameSite
attribute of this cookie if one was specified.
Example
use cookie::{Cookie, SameSite}; let c = Cookie::parse("name=value; SameSite=Lax").unwrap(); assert_eq!(c.same_site(), Some(SameSite::Lax));
pub fn max_age(&self) -> Option<Duration>
[src]
Returns the specified max-age of the cookie if one was specified.
Example
use cookie::Cookie; let c = Cookie::parse("name=value").unwrap(); assert_eq!(c.max_age(), None); let c = Cookie::parse("name=value; Max-Age=3600").unwrap(); assert_eq!(c.max_age().map(|age| age.whole_hours()), Some(1));
pub fn path(&self) -> Option<&str>
[src]
Returns the Path
of the cookie if one was specified.
Example
use cookie::Cookie; let c = Cookie::parse("name=value").unwrap(); assert_eq!(c.path(), None); let c = Cookie::parse("name=value; Path=/").unwrap(); assert_eq!(c.path(), Some("/")); let c = Cookie::parse("name=value; path=/sub").unwrap(); assert_eq!(c.path(), Some("/sub"));
pub fn domain(&self) -> Option<&str>
[src]
Returns the Domain
of the cookie if one was specified.
Example
use cookie::Cookie; let c = Cookie::parse("name=value").unwrap(); assert_eq!(c.domain(), None); let c = Cookie::parse("name=value; Domain=crates.io").unwrap(); assert_eq!(c.domain(), Some("crates.io"));
pub fn expires(&self) -> Option<Expiration>
[src]
Returns the Expiration
of the cookie if one was specified.
Example
use cookie::{Cookie, Expiration}; let c = Cookie::parse("name=value").unwrap(); assert_eq!(c.expires(), None); // Here, `cookie.expires_datetime()` returns `None`. let c = Cookie::build("name", "value").expires(None).finish(); assert_eq!(c.expires(), Some(Expiration::Session)); let expire_time = "Wed, 21 Oct 2017 07:28:00 GMT"; let cookie_str = format!("name=value; Expires={}", expire_time); let c = Cookie::parse(cookie_str).unwrap(); assert_eq!(c.expires().and_then(|e| e.datetime()).map(|t| t.year()), Some(2017));
pub fn expires_datetime(&self) -> Option<OffsetDateTime>
[src]
Returns the expiration date-time of the cookie if one was specified.
Example
use cookie::Cookie; let c = Cookie::parse("name=value").unwrap(); assert_eq!(c.expires_datetime(), None); // Here, `cookie.expires()` returns `Some`. let c = Cookie::build("name", "value").expires(None).finish(); assert_eq!(c.expires_datetime(), None); let expire_time = "Wed, 21 Oct 2017 07:28:00 GMT"; let cookie_str = format!("name=value; Expires={}", expire_time); let c = Cookie::parse(cookie_str).unwrap(); assert_eq!(c.expires_datetime().map(|t| t.year()), Some(2017));
pub fn name_raw(&self) -> Option<&'c str>
[src]
Returns the name of self
as a string slice of the raw string self
was originally parsed from. If self
was not originally parsed from a
raw string, returns None
.
This method differs from Cookie::name()
in that it returns a string
with the same lifetime as the originally parsed string. This lifetime
may outlive self
. If a longer lifetime is not required, or you’re
unsure if you need a longer lifetime, use Cookie::name()
.
Example
use cookie::Cookie; let cookie_string = format!("{}={}", "foo", "bar"); // `c` will be dropped at the end of the scope, but `name` will live on let name = { let c = Cookie::parse(cookie_string.as_str()).unwrap(); c.name_raw() }; assert_eq!(name, Some("foo"));
pub fn value_raw(&self) -> Option<&'c str>
[src]
Returns the value of self
as a string slice of the raw string self
was originally parsed from. If self
was not originally parsed from a
raw string, returns None
.
This method differs from Cookie::value()
in that it returns a
string with the same lifetime as the originally parsed string. This
lifetime may outlive self
. If a longer lifetime is not required, or
you’re unsure if you need a longer lifetime, use Cookie::value()
.
Example
use cookie::Cookie; let cookie_string = format!("{}={}", "foo", "bar"); // `c` will be dropped at the end of the scope, but `value` will live on let value = { let c = Cookie::parse(cookie_string.as_str()).unwrap(); c.value_raw() }; assert_eq!(value, Some("bar"));
pub fn path_raw(&self) -> Option<&'c str>
[src]
Returns the Path
of self
as a string slice of the raw string self
was originally parsed from. If self
was not originally parsed from a
raw string, or if self
doesn’t contain a Path
, or if the Path
has
changed since parsing, returns None
.
This method differs from Cookie::path()
in that it returns a
string with the same lifetime as the originally parsed string. This
lifetime may outlive self
. If a longer lifetime is not required, or
you’re unsure if you need a longer lifetime, use Cookie::path()
.
Example
use cookie::Cookie; let cookie_string = format!("{}={}; Path=/", "foo", "bar"); // `c` will be dropped at the end of the scope, but `path` will live on let path = { let c = Cookie::parse(cookie_string.as_str()).unwrap(); c.path_raw() }; assert_eq!(path, Some("/"));
pub fn domain_raw(&self) -> Option<&'c str>
[src]
Returns the Domain
of self
as a string slice of the raw string
self
was originally parsed from. If self
was not originally parsed
from a raw string, or if self
doesn’t contain a Domain
, or if the
Domain
has changed since parsing, returns None
.
This method differs from Cookie::domain()
in that it returns a
string with the same lifetime as the originally parsed string. This
lifetime may outlive self
struct. If a longer lifetime is not
required, or you’re unsure if you need a longer lifetime, use
Cookie::domain()
.
Example
use cookie::Cookie; let cookie_string = format!("{}={}; Domain=crates.io", "foo", "bar"); //`c` will be dropped at the end of the scope, but `domain` will live on let domain = { let c = Cookie::parse(cookie_string.as_str()).unwrap(); c.domain_raw() }; assert_eq!(domain, Some("crates.io"));
pub fn encoded(&'a self) -> Display<'a, 'c>
[src]
percent-encode
only.Wraps self
in an encoded Display
: a cost-free wrapper around
Cookie
whose fmt::Display
implementation percent-encodes the name
and value of the wrapped Cookie
.
The returned structure can be chained with Display::stripped()
to
display only the name and value.
Example
use cookie::Cookie; let mut c = Cookie::build("my name", "this; value?").secure(true).finish(); assert_eq!(&c.encoded().to_string(), "my%20name=this%3B%20value%3F; Secure"); assert_eq!(&c.encoded().stripped().to_string(), "my%20name=this%3B%20value%3F");
pub fn stripped(&'a self) -> Display<'a, 'c>
[src]
Wraps self
in a stripped Display
]: a cost-free wrapper around
Cookie
whose fmt::Display
implementation prints only the name
and value
of the wrapped Cookie
.
The returned structure can be chained with Display::encoded()
to
encode the name and value.
Example
use cookie::Cookie; let mut c = Cookie::build("key?", "value").secure(true).path("/").finish(); assert_eq!(&c.stripped().to_string(), "key?=value"); // Note: `encoded()` is only available when `percent-encode` is enabled. assert_eq!(&c.stripped().encoded().to_string(), "key%3F=value");
Trait Implementations
impl<'a> Clone for Cookie<'a>
[src]
impl<'a> Debug for Cookie<'a>
[src]
impl<'a> Deref for Cookie<'a>
[src]
type Target = RawCookie<'a>
The resulting type after dereferencing.
fn deref(&self) -> &Self::Target
[src]
impl<'de, 'a> Deserialize<'de> for Cookie<'a>
[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>,
[src]
__D: Deserializer<'de>,
impl<'a> From<Cookie<'a>> for RawCookie<'a>
[src]
impl<'a> PartialEq<Cookie<'a>> for Cookie<'a>
[src]
impl<'a> Serialize for Cookie<'a>
[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer,
[src]
__S: Serializer,
impl<'a> StructuralPartialEq for Cookie<'a>
[src]
Auto Trait Implementations
impl<'a> RefUnwindSafe for Cookie<'a>
impl<'a> Send for Cookie<'a>
impl<'a> Sync for Cookie<'a>
impl<'a> Unpin for Cookie<'a>
impl<'a> UnwindSafe for Cookie<'a>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> DeserializeOwned for T where
T: for<'de> Deserialize<'de>,
[src]
T: for<'de> Deserialize<'de>,
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,