[][src]Struct datetime_string::common::SecfracDigitsStr

#[repr(transparent)]pub struct SecfracDigitsStr(_);

String slice for digits of fractions of a second.

Note that values of this type cannot be not empty string.

Implementations

impl SecfracDigitsStr[src]

pub fn from_str(s: &str) -> Result<&Self, Error>[src]

Creates a new &SecfracDigitsStr from a string slice.

Examples

let secfrac = SecfracDigitsStr::from_str("1234")?;
assert_eq!(secfrac.as_str(), "1234");

assert!(SecfracDigitsStr::from_str("0").is_ok());
assert!(SecfracDigitsStr::from_str("0000000000").is_ok());
assert!(SecfracDigitsStr::from_str("9999999999").is_ok());

assert!(SecfracDigitsStr::from_str("").is_err(), "Fractions should not be empty");
assert!(SecfracDigitsStr::from_str(".0").is_err(), "Only digits are allowed");

pub fn from_mut_str(s: &mut str) -> Result<&mut Self, Error>[src]

Creates a new &mut SecfracDigitsStr from a mutable string slice.

Examples

let mut buf = "1234".to_owned();
let secfrac = SecfracDigitsStr::from_mut_str(&mut buf)?;
assert_eq!(secfrac.as_str(), "1234");

secfrac.fill_with_zero();
assert_eq!(secfrac.as_str(), "0000");

assert_eq!(buf, "0000");

pub fn from_bytes(s: &[u8]) -> Result<&Self, Error>[src]

Creates a new &SecfracDigitsStr from a byte slice.

Examples

let secfrac = SecfracDigitsStr::from_str("1234")?;
assert_eq!(secfrac.as_str(), "1234");

assert!(SecfracDigitsStr::from_str("0").is_ok());
assert!(SecfracDigitsStr::from_str("0000000000").is_ok());
assert!(SecfracDigitsStr::from_str("9999999999").is_ok());

assert!(SecfracDigitsStr::from_str("").is_err(), "Fractions should not be empty");
assert!(SecfracDigitsStr::from_str(".0").is_err(), "Only digits are allowed");

pub fn from_bytes_mut(s: &mut [u8]) -> Result<&mut Self, Error>[src]

Creates a new &mut SecfracDigitsStr from a mutable byte slice.

Examples

let mut buf: [u8; 4] = *b"1234";
let secfrac = SecfracDigitsStr::from_bytes_mut(&mut buf)?;
assert_eq!(secfrac.as_str(), "1234");

secfrac.fill_with_zero();
assert_eq!(secfrac.as_str(), "0000");

assert_eq!(&buf[..], b"0000");

#[must_use]pub fn as_str(&self) -> &str[src]

Returns a string slice.

Examples

let secfrac = SecfracDigitsStr::from_str("1234")?;

assert_eq!(secfrac.as_str(), "1234");

#[must_use]pub fn as_bytes(&self) -> &[u8][src]

Returns a byte slice.

Examples

let secfrac = SecfracDigitsStr::from_str("1234")?;

assert_eq!(secfrac.as_str(), "1234");

#[must_use]pub fn milliseconds(&self) -> u16[src]

Retruns a milliseconds value in integer.

Examples

let not_precise = SecfracDigitsStr::from_str("1")?;
assert_eq!(not_precise.milliseconds(), 100);

let precise = SecfracDigitsStr::from_str("012")?;
assert_eq!(precise.milliseconds(), 12);

let more_precise = SecfracDigitsStr::from_str("369999")?;
assert_eq!(more_precise.milliseconds(), 369);

#[must_use]pub fn milliseconds_digits(&self) -> Option<&SecfracDigitsStr>[src]

Returns a milliseconds precision substring if there are enough digits.

Examples

let not_precise = SecfracDigitsStr::from_str("1")?;
assert_eq!(not_precise.milliseconds_digits(), None);

let precise = SecfracDigitsStr::from_str("012")?;
assert_eq!(precise.milliseconds_digits().unwrap(), "012");

let more_precise = SecfracDigitsStr::from_str("012345678901")?;
assert_eq!(more_precise.milliseconds_digits().unwrap(), "012");

#[must_use]pub fn milliseconds_digits_mut(&mut self) -> Option<&mut SecfracDigitsStr>[src]

Returns a milliseconds precision substring if there are enough digits.

Examples

let mut buf = "012345678901".to_owned();
let digits = SecfracDigitsStr::from_mut_str(&mut buf)?;
assert_eq!(digits.as_str(), "012345678901");

digits.milliseconds_digits_mut().unwrap().fill_with_zero();
assert_eq!(digits.as_str(), "000345678901");

#[must_use]pub fn milliseconds_bytes_fixed_len(&self) -> Option<&[u8; 3]>[src]

Returns a milliseconds digits as a fixed bytes slice, if there are enough digits.

Examples

let not_precise = SecfracDigitsStr::from_str("1")?;
assert_eq!(not_precise.milliseconds_bytes_fixed_len(), None);

let precise = SecfracDigitsStr::from_str("012")?;
assert_eq!(precise.milliseconds_bytes_fixed_len(), Some(b"012"));

let more_precise = SecfracDigitsStr::from_str("012345678901")?;
assert_eq!(more_precise.milliseconds_bytes_fixed_len(), Some(b"012"));

#[must_use]pub fn microseconds(&self) -> u32[src]

Retruns a microseconds value in integer.

Examples

let not_precise = SecfracDigitsStr::from_str("1")?;
assert_eq!(not_precise.microseconds(), 100_000);

let precise = SecfracDigitsStr::from_str("012345")?;
assert_eq!(precise.microseconds(), 012_345);

let more_precise = SecfracDigitsStr::from_str("123456999")?;
assert_eq!(more_precise.microseconds(), 123_456);

#[must_use]pub fn microseconds_digits(&self) -> Option<&SecfracDigitsStr>[src]

Returns a microseconds precision substring if there are enough digits.

Examples

let not_precise = SecfracDigitsStr::from_str("1234")?;
assert_eq!(not_precise.microseconds_digits(), None);

let precise = SecfracDigitsStr::from_str("012345")?;
assert_eq!(precise.microseconds_digits().unwrap(), "012345");

let more_precise = SecfracDigitsStr::from_str("012345678901")?;
assert_eq!(more_precise.microseconds_digits().unwrap(), "012345");

#[must_use]pub fn microseconds_digits_mut(&mut self) -> Option<&mut SecfracDigitsStr>[src]

Returns a microseconds precision substring if there are enough digits.

Examples

let mut buf = "012345678901".to_owned();
let digits = SecfracDigitsStr::from_mut_str(&mut buf)?;
assert_eq!(digits.as_str(), "012345678901");

digits.microseconds_digits_mut().unwrap().fill_with_zero();
assert_eq!(digits.as_str(), "000000678901");

#[must_use]pub fn microseconds_bytes_fixed_len(&self) -> Option<&[u8; 6]>[src]

Returns a microseconds digits as a fixed bytes slice, if there are enough digits.

Examples

let not_precise = SecfracDigitsStr::from_str("1234")?;
assert_eq!(not_precise.microseconds_bytes_fixed_len(), None);

let precise = SecfracDigitsStr::from_str("012345")?;
assert_eq!(precise.microseconds_bytes_fixed_len(), Some(b"012345"));

let more_precise = SecfracDigitsStr::from_str("012345678901")?;
assert_eq!(more_precise.microseconds_bytes_fixed_len(), Some(b"012345"));

#[must_use]pub fn nanoseconds(&self) -> u32[src]

Retruns a nanoseconds value in integer.

Examples

let not_precise = SecfracDigitsStr::from_str("1")?;
assert_eq!(not_precise.nanoseconds(), 100_000_000);

let precise = SecfracDigitsStr::from_str("012345678")?;
assert_eq!(precise.nanoseconds(), 012_345_678);

let more_precise = SecfracDigitsStr::from_str("876543210999")?;
assert_eq!(more_precise.nanoseconds(), 876_543_210);

#[must_use]pub fn nanoseconds_digits(&self) -> Option<&SecfracDigitsStr>[src]

Returns a nanoseconds precision substring if there are enough digits.

Examples

let not_precise = SecfracDigitsStr::from_str("1234")?;
assert_eq!(not_precise.nanoseconds_digits(), None);

let precise = SecfracDigitsStr::from_str("012345678")?;
assert_eq!(precise.nanoseconds_digits().unwrap(), "012345678");

let more_precise = SecfracDigitsStr::from_str("012345678901")?;
assert_eq!(more_precise.nanoseconds_digits().unwrap(), "012345678");

#[must_use]pub fn nanoseconds_digits_mut(&mut self) -> Option<&mut SecfracDigitsStr>[src]

Returns a nanoseconds precision substring if there are enough digits.

Examples

let mut buf = "012345678901".to_owned();
let digits = SecfracDigitsStr::from_mut_str(&mut buf)?;
assert_eq!(digits.as_str(), "012345678901");

digits.nanoseconds_digits_mut().unwrap().fill_with_zero();
assert_eq!(digits.as_str(), "000000000901");

#[must_use]pub fn nanoseconds_bytes_fixed_len(&self) -> Option<&[u8; 9]>[src]

Returns a nanoseconds digits as a fixed bytes slice, if there are enough digits.

Examples

let not_precise = SecfracDigitsStr::from_str("1234")?;
assert_eq!(not_precise.nanoseconds_bytes_fixed_len(), None);

let precise = SecfracDigitsStr::from_str("012345678")?;
assert_eq!(precise.nanoseconds_bytes_fixed_len(), Some(b"012345678"));

let more_precise = SecfracDigitsStr::from_str("012345678901")?;
assert_eq!(more_precise.nanoseconds_bytes_fixed_len(), Some(b"012345678"));

pub fn fill_with_zero(&mut self)[src]

Fills the secfrac part with zero.

Examples

let mut buf = "1234".to_owned();
let secfrac = SecfracDigitsStr::from_mut_str(&mut buf)?;
assert_eq!(secfrac.as_str(), "1234");

secfrac.fill_with_zero();
assert_eq!(secfrac.as_str(), "0000");

assert_eq!(buf, "0000");

pub fn fill_with_nine(&mut self)[src]

Fills the secfrac part with zero.

Examples

let mut buf = "1234".to_owned();
let secfrac = SecfracDigitsStr::from_mut_str(&mut buf)?;
assert_eq!(secfrac.as_str(), "1234");

secfrac.fill_with_nine();
assert_eq!(secfrac.as_str(), "9999");

assert_eq!(buf, "9999");

Trait Implementations

impl AsMut<SecfracDigitsStr> for SecfracDigitsString[src]

impl AsMut<SecfracDigitsStr> for SecfracDigitsStr[src]

impl AsRef<[u8]> for SecfracDigitsStr[src]

impl AsRef<SecfracDigitsStr> for SecfracDigitsString[src]

impl AsRef<SecfracDigitsStr> for SecfracDigitsStr[src]

impl AsRef<str> for SecfracDigitsStr[src]

impl Borrow<SecfracDigitsStr> for SecfracDigitsString[src]

impl BorrowMut<SecfracDigitsStr> for SecfracDigitsString[src]

impl Debug for SecfracDigitsStr[src]

impl Deref for SecfracDigitsStr[src]

type Target = str

The resulting type after dereferencing.

impl<'de> Deserialize<'de> for &'de SecfracDigitsStr[src]

impl Display for SecfracDigitsStr[src]

impl Eq for SecfracDigitsStr[src]

impl<'_> From<&'_ SecfracDigitsStr> for SecfracDigitsString[src]

impl<'a> From<&'a SecfracDigitsStr> for &'a str[src]

impl Hash for SecfracDigitsStr[src]

impl Ord for SecfracDigitsStr[src]

impl<'_> PartialEq<&'_ [u8]> for SecfracDigitsStr[src]

impl<'_> PartialEq<&'_ SecfracDigitsStr> for SecfracDigitsString[src]

impl<'_> PartialEq<&'_ SecfracDigitsStr> for SecfracDigitsStr[src]

impl<'_> PartialEq<&'_ SecfracDigitsStr> for [u8][src]

impl<'_> PartialEq<&'_ SecfracDigitsStr> for str[src]

impl<'_> PartialEq<&'_ str> for SecfracDigitsStr[src]

impl PartialEq<[u8]> for SecfracDigitsStr[src]

impl<'_> PartialEq<[u8]> for &'_ SecfracDigitsStr[src]

impl PartialEq<SecfracDigitsStr> for SecfracDigitsString[src]

impl PartialEq<SecfracDigitsStr> for SecfracDigitsStr[src]

impl<'_> PartialEq<SecfracDigitsStr> for &'_ SecfracDigitsStr[src]

impl PartialEq<SecfracDigitsStr> for [u8][src]

impl<'_> PartialEq<SecfracDigitsStr> for &'_ [u8][src]

impl PartialEq<SecfracDigitsStr> for str[src]

impl<'_> PartialEq<SecfracDigitsStr> for &'_ str[src]

impl PartialEq<SecfracDigitsString> for SecfracDigitsStr[src]

impl<'_> PartialEq<SecfracDigitsString> for &'_ SecfracDigitsStr[src]

impl PartialEq<str> for SecfracDigitsStr[src]

impl<'_> PartialEq<str> for &'_ SecfracDigitsStr[src]

impl<'_> PartialOrd<&'_ [u8]> for SecfracDigitsStr[src]

impl<'_> PartialOrd<&'_ SecfracDigitsStr> for SecfracDigitsString[src]

impl<'_> PartialOrd<&'_ SecfracDigitsStr> for SecfracDigitsStr[src]

impl<'_> PartialOrd<&'_ SecfracDigitsStr> for [u8][src]

impl<'_> PartialOrd<&'_ SecfracDigitsStr> for str[src]

impl<'_> PartialOrd<&'_ str> for SecfracDigitsStr[src]

impl PartialOrd<[u8]> for SecfracDigitsStr[src]

impl<'_> PartialOrd<[u8]> for &'_ SecfracDigitsStr[src]

impl PartialOrd<SecfracDigitsStr> for SecfracDigitsString[src]

impl PartialOrd<SecfracDigitsStr> for SecfracDigitsStr[src]

impl<'_> PartialOrd<SecfracDigitsStr> for &'_ SecfracDigitsStr[src]

impl PartialOrd<SecfracDigitsStr> for [u8][src]

impl<'_> PartialOrd<SecfracDigitsStr> for &'_ [u8][src]

impl PartialOrd<SecfracDigitsStr> for str[src]

impl<'_> PartialOrd<SecfracDigitsStr> for &'_ str[src]

impl PartialOrd<SecfracDigitsString> for SecfracDigitsStr[src]

impl<'_> PartialOrd<SecfracDigitsString> for &'_ SecfracDigitsStr[src]

impl PartialOrd<str> for SecfracDigitsStr[src]

impl<'_> PartialOrd<str> for &'_ SecfracDigitsStr[src]

impl Serialize for SecfracDigitsStr[src]

impl StructuralEq for SecfracDigitsStr[src]

impl StructuralPartialEq for SecfracDigitsStr[src]

impl ToOwned for SecfracDigitsStr[src]

type Owned = SecfracDigitsString

The resulting type after obtaining ownership.

impl<'a> TryFrom<&'a [u8]> for &'a SecfracDigitsStr[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a> TryFrom<&'a mut [u8]> for &'a mut SecfracDigitsStr[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a> TryFrom<&'a mut str> for &'a mut SecfracDigitsStr[src]

type Error = Error

The type returned in the event of a conversion error.

impl<'a> TryFrom<&'a str> for &'a SecfracDigitsStr[src]

type Error = Error

The type returned in the event of a conversion error.

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]