Struct chronoutil::relative_duration::RelativeDuration
source · pub struct RelativeDuration { /* private fields */ }
Expand description
Relative time duration extending Chrono’s Duration.
Implementations§
source§impl RelativeDuration
impl RelativeDuration
sourcepub fn parse_from_iso8601(input: &str) -> Result<RelativeDuration, String>
pub fn parse_from_iso8601(input: &str) -> Result<RelativeDuration, String>
Parses an ISO 8601 duration string into
a RelativeDuration
value.
This supports only duration strings with integer values (i.e "P1Y"
but not "P0.5Y"
or
"P0,5Y"
), as fractional values cannot be unambiguously represented as a
RelativeDuration
. The one exception to this is the seconds field, where the fractional
part is truncated to 9 digits, and parsed as nanoseconds.
§Errors
- Invalid duration string input
- Fractional values (apart from seconds) in duration string
§Example
use chronoutil::RelativeDuration;
assert_eq!(
RelativeDuration::parse_from_iso8601("P1Y").unwrap(),
RelativeDuration::years(1),
);
sourcepub fn format_to_iso8601(&self) -> String
pub fn format_to_iso8601(&self) -> String
Formats a RelativeDuration
value into an
ISO 8601 duration string.
§Example
use chronoutil::RelativeDuration;
assert_eq!(
RelativeDuration::years(1).format_to_iso8601(),
"P1Y",
);
source§impl RelativeDuration
impl RelativeDuration
sourcepub fn years(years: i32) -> RelativeDuration
pub fn years(years: i32) -> RelativeDuration
Makes a new RelativeDuration
with given number of years.
Equivalent to RelativeDuration::months(years * 12)
with overflow checks.
Panics when the duration is out of bounds.
sourcepub fn months(months: i32) -> RelativeDuration
pub fn months(months: i32) -> RelativeDuration
Makes a new RelativeDuration
with given number of months.
Panics when the duration is out of bounds.
sourcepub fn weeks(weeks: i64) -> RelativeDuration
pub fn weeks(weeks: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of weeks.
Panics when the duration is out of bounds.
sourcepub fn days(days: i64) -> RelativeDuration
pub fn days(days: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of days.
Panics when the duration is out of bounds.
sourcepub fn hours(hours: i64) -> RelativeDuration
pub fn hours(hours: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of hours.
Panics when the duration is out of bounds.
sourcepub fn minutes(minutes: i64) -> RelativeDuration
pub fn minutes(minutes: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of minutes.
Panics when the duration is out of bounds.
sourcepub fn seconds(seconds: i64) -> RelativeDuration
pub fn seconds(seconds: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of seconds.
Panics when the duration is out of bounds.
sourcepub fn milliseconds(milliseconds: i64) -> RelativeDuration
pub fn milliseconds(milliseconds: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of milliseconds.
sourcepub fn microseconds(microseconds: i64) -> RelativeDuration
pub fn microseconds(microseconds: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of microseconds.
sourcepub fn nanoseconds(nanos: i64) -> RelativeDuration
pub fn nanoseconds(nanos: i64) -> RelativeDuration
Makes a new RelativeDuration
with given number of nanoseconds.
sourcepub fn with_duration(self, duration: Duration) -> RelativeDuration
pub fn with_duration(self, duration: Duration) -> RelativeDuration
Update the Duration
part of the current RelativeDuration
.
sourcepub fn zero() -> RelativeDuration
pub fn zero() -> RelativeDuration
A RelativeDuration
representing zero.
Trait Implementations§
source§impl Add<RelativeDuration> for NaiveDate
impl Add<RelativeDuration> for NaiveDate
source§impl Add<RelativeDuration> for NaiveDateTime
impl Add<RelativeDuration> for NaiveDateTime
§type Output = NaiveDateTime
type Output = NaiveDateTime
+
operator.source§fn add(self, rhs: RelativeDuration) -> NaiveDateTime
fn add(self, rhs: RelativeDuration) -> NaiveDateTime
+
operation. Read moresource§impl Add<RelativeDuration> for Duration
impl Add<RelativeDuration> for Duration
§type Output = RelativeDuration
type Output = RelativeDuration
+
operator.source§fn add(self, rhs: RelativeDuration) -> RelativeDuration
fn add(self, rhs: RelativeDuration) -> RelativeDuration
+
operation. Read moresource§impl Add<TimeDelta> for RelativeDuration
impl Add<TimeDelta> for RelativeDuration
§type Output = RelativeDuration
type Output = RelativeDuration
+
operator.source§impl Add for RelativeDuration
impl Add for RelativeDuration
§type Output = RelativeDuration
type Output = RelativeDuration
+
operator.source§fn add(self, rhs: RelativeDuration) -> RelativeDuration
fn add(self, rhs: RelativeDuration) -> RelativeDuration
+
operation. Read moresource§impl Clone for RelativeDuration
impl Clone for RelativeDuration
source§fn clone(&self) -> RelativeDuration
fn clone(&self) -> RelativeDuration
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for RelativeDuration
impl Debug for RelativeDuration
source§impl Div<i32> for RelativeDuration
impl Div<i32> for RelativeDuration
§type Output = RelativeDuration
type Output = RelativeDuration
/
operator.source§impl From<Duration> for RelativeDuration
impl From<Duration> for RelativeDuration
source§fn from(item: StdDuration) -> Self
fn from(item: StdDuration) -> Self
Makes a new RelativeDuration
from a std Duration
.
source§impl From<TimeDelta> for RelativeDuration
impl From<TimeDelta> for RelativeDuration
source§impl Hash for RelativeDuration
impl Hash for RelativeDuration
source§impl Mul<i32> for RelativeDuration
impl Mul<i32> for RelativeDuration
§type Output = RelativeDuration
type Output = RelativeDuration
*
operator.source§impl Neg for RelativeDuration
impl Neg for RelativeDuration
§type Output = RelativeDuration
type Output = RelativeDuration
-
operator.source§fn neg(self) -> RelativeDuration
fn neg(self) -> RelativeDuration
-
operation. Read moresource§impl Ord for RelativeDuration
impl Ord for RelativeDuration
source§fn cmp(&self, other: &RelativeDuration) -> Ordering
fn cmp(&self, other: &RelativeDuration) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
source§impl PartialEq for RelativeDuration
impl PartialEq for RelativeDuration
source§fn eq(&self, other: &RelativeDuration) -> bool
fn eq(&self, other: &RelativeDuration) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl PartialOrd for RelativeDuration
impl PartialOrd for RelativeDuration
source§fn partial_cmp(&self, other: &RelativeDuration) -> Option<Ordering>
fn partial_cmp(&self, other: &RelativeDuration) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moresource§impl Sub<RelativeDuration> for NaiveDate
impl Sub<RelativeDuration> for NaiveDate
source§impl Sub<RelativeDuration> for NaiveDateTime
impl Sub<RelativeDuration> for NaiveDateTime
§type Output = NaiveDateTime
type Output = NaiveDateTime
-
operator.source§fn sub(self, rhs: RelativeDuration) -> NaiveDateTime
fn sub(self, rhs: RelativeDuration) -> NaiveDateTime
-
operation. Read moresource§impl Sub<RelativeDuration> for Duration
impl Sub<RelativeDuration> for Duration
§type Output = RelativeDuration
type Output = RelativeDuration
-
operator.source§fn sub(self, rhs: RelativeDuration) -> RelativeDuration
fn sub(self, rhs: RelativeDuration) -> RelativeDuration
-
operation. Read moresource§impl Sub<TimeDelta> for RelativeDuration
impl Sub<TimeDelta> for RelativeDuration
§type Output = RelativeDuration
type Output = RelativeDuration
-
operator.source§impl Sub for RelativeDuration
impl Sub for RelativeDuration
§type Output = RelativeDuration
type Output = RelativeDuration
-
operator.source§fn sub(self, rhs: RelativeDuration) -> RelativeDuration
fn sub(self, rhs: RelativeDuration) -> RelativeDuration
-
operation. Read more