Struct Tz

Source
pub struct Tz { /* private fields */ }
Expand description

Timezone indicator.

§Examples

use hotfix_encoding::field_access::FieldType;
use hotfix_encoding::field_types::Tz;
use std::time::Duration;

let timezone = Tz::deserialize(b"Z").unwrap();
assert_eq!(timezone, Tz::UTC);
assert_eq!(timezone.offset().1, Duration::from_secs(0));

let timezone = Tz::deserialize(b"+03").unwrap();
assert_eq!(timezone.offset(), (1, Duration::from_secs(3 * 3600)));

let timezone = Tz::deserialize(b"-01").unwrap();
assert_eq!(timezone.offset(), (-1, Duration::from_secs(1 * 3600)));

let timezone = Tz::deserialize(b"+04:30").unwrap();
assert_eq!(timezone.offset(), (1, Duration::from_secs(4 * 3600 + 30 * 60)));

Implementations§

Source§

impl Tz

Source

pub const UTC: Self

The UTC timezone.

Source

pub fn offset(&self) -> (i32, Duration)

Calculates the offset information of self as compared to UTC. The return value is in the form of a sign (-1, 0, or +1) and a Duration.

Source

pub fn offset_as_secs(&self) -> i32

Returns the raw offset from UTC of self measured in seconds.

Trait Implementations§

Source§

impl Clone for Tz

Source§

fn clone(&self) -> Tz

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Tz

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'a> FieldType<'a> for Tz

Source§

type Error = &'static str

The error type that can arise during deserialization.
Source§

type SerializeSettings = ()

A type with values that customize the serialization algorithm, e.g. padding information.
Source§

fn serialize_with<B>(&self, buffer: &mut B, _settings: ()) -> usize
where B: Buffer,

Writes self to buffer using custom serialization settings.
Source§

fn deserialize(data: &'a [u8]) -> Result<Self, Self::Error>

Parses and deserializes from data.
Source§

fn deserialize_lossy(data: &'a [u8]) -> Result<Self, Self::Error>

Like FieldType::deserialize, but it’s allowed to skip some amount of input checking. Invalid inputs might not trigger errors and instead be deserialized as random values. Read more
Source§

fn serialize<B>(&self, buffer: &mut B) -> usize
where B: Buffer,

Writes self to buffer using default settings.
Source§

fn to_bytes(&self) -> Vec<u8>

Serializes self to a Vec of bytes, allocated on the fly.
Source§

fn to_string(&self) -> String

Allocates a String representation of self, using FieldType::to_bytes. Read more
Source§

impl Hash for Tz

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl PartialEq for Tz

Source§

fn eq(&self, other: &Tz) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for Tz

Source§

impl Eq for Tz

Source§

impl StructuralPartialEq for Tz

Auto Trait Implementations§

§

impl Freeze for Tz

§

impl RefUnwindSafe for Tz

§

impl Send for Tz

§

impl Sync for Tz

§

impl Unpin for Tz

§

impl UnwindSafe for Tz

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.