pub struct OscTime {
pub seconds: u32,
pub fractional: u32,
}
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
#[cfg(feature = "std")]
{
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§
source§impl From<OscTime> for SystemTime
impl From<OscTime> for SystemTime
source§fn from(time: OscTime) -> SystemTime
fn from(time: OscTime) -> SystemTime
source§impl Ord for OscTime
impl Ord for OscTime
source§impl PartialEq<OscTime> for OscTime
impl PartialEq<OscTime> for OscTime
source§impl PartialOrd<OscTime> for OscTime
impl PartialOrd<OscTime> for OscTime
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more