Enum cookie::Expiration
source · pub enum Expiration {
DateTime(OffsetDateTime),
Session,
}
Expand description
A cookie’s expiration: either session or a date-time.
An Expiration
is constructible via Expiration::from()
with an
Option<OffsetDateTime>
or an OffsetDateTime
:
None
->Expiration::Session
Some(OffsetDateTime)
->Expiration::DateTime
OffsetDateTime
->Expiration::DateTime
use cookie::Expiration;
use time::OffsetDateTime;
let expires = Expiration::from(None);
assert_eq!(expires, Expiration::Session);
let now = OffsetDateTime::now();
let expires = Expiration::from(now);
assert_eq!(expires, Expiration::DateTime(now));
let expires = Expiration::from(Some(now));
assert_eq!(expires, Expiration::DateTime(now));
Variants§
DateTime(OffsetDateTime)
Expiration for a “permanent” cookie at a specific date-time.
Session
Expiration for a “session” cookie. Browsers define the notion of a “session” and will automatically expire session cookies when they deem the “session” to be over. This is typically, but need not be, when the browser is closed.
Implementations§
source§impl Expiration
impl Expiration
sourcepub fn is_datetime(&self) -> bool
pub fn is_datetime(&self) -> bool
Returns true
if self
is an Expiration::DateTime
.
Example
use cookie::Expiration;
use time::OffsetDateTime;
let expires = Expiration::from(None);
assert!(!expires.is_datetime());
let expires = Expiration::from(OffsetDateTime::now());
assert!(expires.is_datetime());
sourcepub fn is_session(&self) -> bool
pub fn is_session(&self) -> bool
Returns true
if self
is an Expiration::Session
.
Example
use cookie::Expiration;
use time::OffsetDateTime;
let expires = Expiration::from(None);
assert!(expires.is_session());
let expires = Expiration::from(OffsetDateTime::now());
assert!(!expires.is_session());
sourcepub fn datetime(self) -> Option<OffsetDateTime>
pub fn datetime(self) -> Option<OffsetDateTime>
Returns the inner OffsetDateTime
if self
is a DateTime
.
Example
use cookie::Expiration;
use time::OffsetDateTime;
let expires = Expiration::from(None);
assert!(expires.datetime().is_none());
let now = OffsetDateTime::now();
let expires = Expiration::from(now);
assert_eq!(expires.datetime(), Some(now));
sourcepub fn map<F>(self, f: F) -> Selfwhere
F: FnOnce(OffsetDateTime) -> OffsetDateTime,
pub fn map<F>(self, f: F) -> Selfwhere
F: FnOnce(OffsetDateTime) -> OffsetDateTime,
Applied f
to the inner OffsetDateTime
if self
is a DateTime
and
returns the mapped Expiration
.
Example
use cookie::Expiration;
use time::{OffsetDateTime, Duration};
let now = OffsetDateTime::now();
let one_week = Duration::weeks(1);
let expires = Expiration::from(now);
assert_eq!(expires.map(|t| t + one_week).datetime(), Some(now + one_week));
let expires = Expiration::from(None);
assert_eq!(expires.map(|t| t + one_week).datetime(), None);
Trait Implementations§
source§impl Clone for Expiration
impl Clone for Expiration
source§fn clone(&self) -> Expiration
fn clone(&self) -> Expiration
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for Expiration
impl Debug for Expiration
source§impl<T: Into<Option<OffsetDateTime>>> From<T> for Expiration
impl<T: Into<Option<OffsetDateTime>>> From<T> for Expiration
source§impl Hash for Expiration
impl Hash for Expiration
source§impl PartialEq<Expiration> for Expiration
impl PartialEq<Expiration> for Expiration
source§fn eq(&self, other: &Expiration) -> bool
fn eq(&self, other: &Expiration) -> bool
This method tests for
self
and other
values to be equal, and is used
by ==
.