Struct rosc::OscTime [−][src]
Expand description
A time tag in OSC message consists of two 32-bit integers where the first one denotes the number of seconds since 1900-01-01 and the second the fractions of a second. For details on its semantics see http://opensoundcontrol.org/node/3/#timetags
Examples
use rosc::OscTime; use std::{convert::TryFrom, time::UNIX_EPOCH}; assert_eq!( OscTime::try_from(UNIX_EPOCH).unwrap(), OscTime::from((2_208_988_800, 0)) );
Conversions between (u32, u32)
Prior to version 0.5.0
of this crate, OscTime
was defined as a type alias to (u32, u32)
.
If you are upgrading from one of these older versions, you can use .into()
to
convert between (u32, u32)
and OscTime
in either direction.
Conversions between std::time::SystemTime
The traits in std::convert
are implemented for converting between
SystemTime
and OscTime
in both directions. An OscTime
can be
converted into a SystemTime
using From
/Into
.
A SystemTime
can be converted into an OscTime
using
TryFrom
/TryInto
. The fallible variants of
the conversion traits are used this case because not every SystemTime
can be represented as
an OscTime
.
These conversions are lossy, but are tested to have a deviation within 5 nanoseconds when converted back and forth in either direction.
Although any time since the OSC epoch (1900-01-01 00:00:00 UTC
) can be represented using the
OSC timestamp format, this crate only allows conversions between times greater than or equal to
the UNIX_EPOCH
. This allows the math used in the conversions to work
on 32-bit systems which cannot represent times that far back.
Fields
seconds: u32
fractional: u32
Trait Implementations
impl Ord for OscTime
[src]
impl Ord for OscTime
[src]impl PartialOrd<OscTime> for OscTime
[src]
impl PartialOrd<OscTime> for OscTime
[src]fn partial_cmp(&self, other: &OscTime) -> Option<Ordering>
[src]
fn partial_cmp(&self, other: &OscTime) -> Option<Ordering>
[src]This method returns an ordering between self
and other
values if one exists. Read more
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than (for self
and other
) and is used by the <
operator. Read more
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
impl TryFrom<SystemTime> for OscTime
[src]
impl TryFrom<SystemTime> for OscTime
[src]type Error = OscTimeError
type Error = OscTimeError
The type returned in the event of a conversion error.
fn try_from(time: SystemTime) -> Result<OscTime, OscTimeError>
[src]
fn try_from(time: SystemTime) -> Result<OscTime, OscTimeError>
[src]Performs the conversion.
impl Copy for OscTime
[src]
impl Eq for OscTime
[src]
impl StructuralEq for OscTime
[src]
impl StructuralPartialEq for OscTime
[src]
Auto Trait Implementations
impl RefUnwindSafe for OscTime
impl Send for OscTime
impl Sync for OscTime
impl Unpin for OscTime
impl UnwindSafe for OscTime
Blanket Implementations
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more