Struct SpanParser
pub struct SpanParser { /* private fields */ }
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, 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, 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::fn parse_unsigned_duration<I: AsRef<[u8]>>(&self, input: I) -> Result<Duration, Error>Parse an ISO 8601 duration string into a
std::time::Durationvalue.Errors
This returns an error if the span string given is invalid or if it is valid but can't be converted to a
std::time::Duration. This can occur when the parsed time exceeds the maximumstd::time::Durationvalue, or if there are any non-zero units greater than hours.Example
This shows a basic example of using this routine.
use Duration; use SpanParser; static PARSER: SpanParser = new; let duration = PARSER.parse_unsigned_duration?; assert_eq!; # Ok::
Trait Implementations
impl Debug for SpanParser
fn fmt(&self, f: &mut Formatter<'_>) -> Result
Auto Trait Implementations
impl Freeze for SpanParser
impl RefUnwindSafe for SpanParser
impl Send for SpanParser
impl Sync for SpanParser
impl Unpin for SpanParser
impl UnsafeUnpin for SpanParser
impl UnwindSafe for SpanParser
Blanket Implementations
impl<T> Any for SpanParser
where
T: 'static + ?Sized,
fn type_id(&self) -> TypeId
impl<T> Borrow<T> for SpanParser
where
T: ?Sized,
fn borrow(&self) -> &T
impl<T> BorrowMut<T> for SpanParser
where
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
impl<T> From<T> for SpanParser
fn from(t: T) -> TReturns the argument unchanged.
impl<T, U> Into<U> for SpanParser
where
U: From<T>,
fn into(self) -> UCalls
U::from(self).That is, this conversion is whatever the implementation of
[From]<T> for Uchooses to do.
impl<T, U> TryFrom<U> for SpanParser
where
U: Into<T>,
type Error = never;fn try_from(value: U) -> Result<T, never>
impl<T, U> TryInto<U> for SpanParser
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error;fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>