Struct version_check::Date [−][src]
pub struct Date(_);
Expand description
Release date including year, month, and day.
Implementations
Reads the release date of the running compiler. If it cannot be
determined (see the top-level documentation), returns None
.
Example
use version_check::Date;
match Date::read() {
Some(d) => format!("The release date is: {}", d),
None => format!("Failed to read the release date.")
};
Parse a release date of the form %Y-%m-%d
. Returns None
if date
is
not in %Y-%m-%d
format.
Example
use version_check::Date;
let date = Date::parse("2016-04-20").unwrap();
assert!(date.at_least("2016-01-10"));
assert!(date.at_most("2016-04-20"));
assert!(date.exactly("2016-04-20"));
assert!(Date::parse("2021-12-31").unwrap().exactly("2021-12-31"));
assert!(Date::parse("March 13, 2018").is_none());
assert!(Date::parse("1-2-3-4-5").is_none());
assert!(Date::parse("2020-300-23120").is_none());
assert!(Date::parse("2020-12-12 1").is_none());
assert!(Date::parse("2020-10").is_none());
assert!(Date::parse("2020").is_none());
Creates a Date
from (year, month, day)
date components.
Does not check the validity of year
, month
, or day
, but year
is
truncated to 23 bits (% 8,388,608), month
to 4 bits (% 16), and day
to 5 bits (% 32).
Example
use version_check::Date;
assert!(Date::from_ymd(2021, 7, 30).exactly("2021-07-30"));
assert!(Date::from_ymd(2010, 3, 23).exactly("2010-03-23"));
assert!(Date::from_ymd(2090, 1, 31).exactly("2090-01-31"));
// Truncation: 33 % 32 == 0x21 & 0x1F == 1.
assert!(Date::from_ymd(2090, 1, 33).exactly("2090-01-01"));
Returns true
if self
occurs on or after date
.
If date
occurs before self
, or if date
is not in %Y-%m-%d
format, returns false
.
Example
use version_check::Date;
let date = Date::parse("2020-01-01").unwrap();
assert!(date.at_least("2019-12-31"));
assert!(date.at_least("2020-01-01"));
assert!(date.at_least("2014-04-31"));
assert!(!date.at_least("2020-01-02"));
assert!(!date.at_least("2024-08-18"));
Returns true
if self
occurs on or before date
.
If date
occurs after self
, or if date
is not in %Y-%m-%d
format, returns false
.
Example
use version_check::Date;
let date = Date::parse("2020-01-01").unwrap();
assert!(date.at_most("2020-01-01"));
assert!(date.at_most("2020-01-02"));
assert!(date.at_most("2024-08-18"));
assert!(!date.at_most("2019-12-31"));
assert!(!date.at_most("2014-04-31"));
Returns true
if self
occurs exactly on date
.
If date
is not exactly self
, or if date
is not in %Y-%m-%d
format, returns false
.
Example
use version_check::Date;
let date = Date::parse("2020-01-01").unwrap();
assert!(date.exactly("2020-01-01"));
assert!(!date.exactly("2019-12-31"));
assert!(!date.exactly("2014-04-31"));
assert!(!date.exactly("2020-01-02"));
assert!(!date.exactly("2024-08-18"));
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
impl RefUnwindSafe for Date
impl UnwindSafe for Date
Blanket Implementations
Mutably borrows from an owned value. Read more