Struct SpanParser
struct SpanParser { ... }
A parser for Temporal durations.
Note that in Jiff, a "Temporal duration" is called a "span."
See the fmt::temporal module documentation for
more information on the specific format used.
Example
This example shows how to parse a Span from a byte string. (That is,
&[u8] and not a &str.)
use ;
// A parser can be created in a const context.
static PARSER: SpanParser = new;
let span = PARSER.parse_span?;
assert_eq!;
# Ok::
Implementations
impl SpanParser
const fn new() -> SpanParserCreate a new Temporal datetime printer with the default configuration.
fn parse_span<I: AsRef<[u8]>>(self: &Self, input: I) -> Result<Span, Error>Parse a span string into a
Spanvalue.Errors
This returns an error if the span string given is invalid or if it is valid but doesn't fit in the span range supported by Jiff.
Example
This shows a basic example of using this routine.
use ; static PARSER: SpanParser = new; let span = PARSER.parse_span?; assert_eq!; # Ok::Note that unless you need to parse a span from a byte string, at time of writing, there is no other advantage to using this parser directly. It is likely more convenient to just use the
FromStrtrait implementation on [Span]:use ; let span = "PT48m".?; assert_eq!; # Ok::fn parse_duration<I: AsRef<[u8]>>(self: &Self, input: I) -> Result<SignedDuration, Error>Parse an ISO 8601 duration string into a [
SignedDuration] value.Errors
This returns an error if the span string given is invalid or if it is valid but can't be converted to a
SignedDuration. This can occur when the parsed time exceeds the minimum and maximumSignedDurationvalues, or if there are any non-zero units greater than hours.Example
This shows a basic example of using this routine.
use ; static PARSER: SpanParser = new; let duration = PARSER.parse_duration?; assert_eq!; # Ok::Note that unless you need to parse a span from a byte string, at time of writing, there is no other advantage to using this parser directly. It is likely more convenient to just use the
FromStrtrait implementation on [SignedDuration]:use SignedDuration; let duration = "PT48m".?; assert_eq!; # Ok::
impl Debug for SpanParser
fn fmt(self: &Self, f: &mut $crate::fmt::Formatter<'_>) -> $crate::fmt::Result
impl Freeze for SpanParser
impl RefUnwindSafe for SpanParser
impl Send for SpanParser
impl Sync for SpanParser
impl Unpin for SpanParser
impl UnwindSafe for SpanParser
impl<T> Any for SpanParser
fn type_id(self: &Self) -> TypeId
impl<T> Borrow for SpanParser
fn borrow(self: &Self) -> &T
impl<T> BorrowMut for SpanParser
fn borrow_mut(self: &mut Self) -> &mut T
impl<T> From for SpanParser
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into for SpanParser
fn into(self: Self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom for SpanParser
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto for SpanParser
fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>