Struct Timestamp

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

Representation of time instants in DDS API and RTPS protocol. Similar to std::time::Instant.

Quoting RTPS 2.3 spec 9.3.2.1:

The representation of the time is the one defined by the IETF Network Time Protocol (NTP) Standard (IETF RFC 1305). In this representation, time is expressed in seconds and fraction of seconds using the formula: time = seconds + (fraction / 2^(32))

The time origin is represented by the reserved value TIME_ZERO and corresponds to the UNIX prime epoch 0h, 1 January 1970.

Note : While NTP uses the same time representation as RTPS, it does not use the Unix epoch (1970-01-01 00:00). NTP uses the beginning of the 20th century epoch (1900-01-01 00:00) instead. So the RTPS timestamps are not interchangeable with NTP.

The timestamps will overflow in year 2106.

This type is called Time_t in the RTPS spec.

Implementations§

Source§

impl Timestamp

Source

pub const ZERO: Self

Source

pub const INVALID: Self

Source

pub const INFINITE: Self

Source

pub fn now() -> Self

Source

pub fn to_ticks(self) -> u64

Source

pub fn from_ticks(ticks: u64) -> Self

Source

pub fn duration_since(&self, since: Self) -> Duration

Trait Implementations§

Source§

impl Add<Duration> for Timestamp

Source§

type Output = Timestamp

The resulting type after applying the + operator.
Source§

fn add(self, rhs: Duration) -> Self::Output

Performs the + operation. Read more
Source§

impl Clone for Timestamp

Source§

fn clone(&self) -> Timestamp

Returns a copy 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 Timestamp

Source§

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

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

impl<'de> Deserialize<'de> for Timestamp

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Ord for Timestamp

Source§

fn cmp(&self, other: &Timestamp) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for Timestamp

Source§

fn eq(&self, other: &Timestamp) -> 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 PartialOrd for Timestamp

Source§

fn partial_cmp(&self, other: &Timestamp) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

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

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

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

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

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

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

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

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<'a_, C_: Context> Readable<'a_, C_> for Timestamp

Source§

fn read_from<R_: Reader<'a_, C_>>(_reader_: &mut R_) -> Result<Self, C_::Error>

Source§

fn minimum_bytes_needed() -> usize

Source§

fn read_from_buffer(buffer: &'a [u8]) -> Result<Self, <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Deserializes from a given buffer. Read more
Source§

fn read_with_length_from_buffer( buffer: &'a [u8], ) -> (Result<Self, <C as Context>::Error>, usize)
where Self: DefaultContext<Context = C>, C: Default,

Deserializes from a given buffer while also returning the amount of bytes consumed. Read more
Source§

fn read_from_buffer_copying_data( buffer: &[u8], ) -> Result<Self, <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Deserializes from a given buffer. Read more
Source§

fn read_with_length_from_buffer_copying_data( buffer: &[u8], ) -> (Result<Self, <C as Context>::Error>, usize)
where Self: DefaultContext<Context = C>, C: Default,

Deserializes from a given buffer while also returning the amount of bytes consumed. Read more
Source§

fn read_from_stream_unbuffered( stream: impl Read, ) -> Result<Self, <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Reads from a given stream without any buffering. Read more
Source§

fn read_from_stream_buffered( stream: impl Read, ) -> Result<Self, <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Reads from a given stream with internal buffering. Read more
Source§

fn read_from_file(path: impl AsRef<Path>) -> Result<Self, <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Source§

fn read_from_buffer_with_ctx( context: C, buffer: &'a [u8], ) -> Result<Self, <C as Context>::Error>

Source§

fn read_with_length_from_buffer_with_ctx( context: C, buffer: &'a [u8], ) -> (Result<Self, <C as Context>::Error>, usize)

Source§

fn read_from_buffer_copying_data_with_ctx( context: C, buffer: &[u8], ) -> Result<Self, <C as Context>::Error>

Source§

fn read_with_length_from_buffer_copying_data_with_ctx( context: C, buffer: &[u8], ) -> (Result<Self, <C as Context>::Error>, usize)

Source§

fn read_with_length_from_buffer_copying_data_with_ctx_mut( context: &mut C, buffer: &[u8], ) -> (Result<Self, <C as Context>::Error>, usize)

Source§

fn read_from_stream_unbuffered_with_ctx<S>( context: C, stream: S, ) -> Result<Self, <C as Context>::Error>
where S: Read,

Source§

fn read_from_stream_buffered_with_ctx<S>( context: C, stream: S, ) -> Result<Self, <C as Context>::Error>
where S: Read,

Source§

fn read_from_file_with_ctx( context: C, path: impl AsRef<Path>, ) -> Result<Self, <C as Context>::Error>

Source§

impl Serialize for Timestamp

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl Sub<Duration> for Timestamp

Source§

type Output = Timestamp

The resulting type after applying the - operator.
Source§

fn sub(self, rhs: Duration) -> Self::Output

Performs the - operation. Read more
Source§

impl Sub for Timestamp

Source§

type Output = Duration

The resulting type after applying the - operator.
Source§

fn sub(self, other: Self) -> Duration

Performs the - operation. Read more
Source§

impl TryFrom<DateTime<Utc>> for Timestamp

Error from this means “out of range”

Source§

type Error = String

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

fn try_from(ct: DateTime<Utc>) -> Result<Timestamp, String>

Performs the conversion.
Source§

impl<C_: Context> Writable<C_> for Timestamp

Source§

fn write_to<T_: ?Sized + Writer<C_>>( &self, _writer_: &mut T_, ) -> Result<(), C_::Error>

Source§

fn write_to_buffer( &self, buffer: &mut [u8], ) -> Result<(), <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Source§

fn write_to_vec(&self) -> Result<Vec<u8>, <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Source§

fn write_to_stream<S>(&self, stream: S) -> Result<(), <C as Context>::Error>
where S: Write, Self: DefaultContext<Context = C>, C: Default,

Source§

fn write_to_file( &self, path: impl AsRef<Path>, ) -> Result<(), <C as Context>::Error>
where Self: DefaultContext<Context = C>, C: Default,

Source§

fn write_to_buffer_with_ctx( &self, context: C, buffer: &mut [u8], ) -> Result<(), <C as Context>::Error>

Source§

fn write_to_buffer_with_ctx_mut( &self, context: &mut C, buffer: &mut [u8], ) -> Result<(), <C as Context>::Error>

Source§

fn write_to_vec_with_ctx( &self, context: C, ) -> Result<Vec<u8>, <C as Context>::Error>

Source§

fn write_to_vec_with_ctx_mut( &self, context: &mut C, ) -> Result<Vec<u8>, <C as Context>::Error>

Source§

fn write_to_stream_with_ctx<S>( &self, context: C, stream: S, ) -> Result<(), <C as Context>::Error>
where S: Write,

Source§

fn write_to_file_with_ctx( &self, context: C, path: impl AsRef<Path>, ) -> Result<(), <C as Context>::Error>

Source§

fn bytes_needed(&self) -> Result<usize, <C as Context>::Error>

Source§

impl Copy for Timestamp

Source§

impl Eq for Timestamp

Source§

impl StructuralPartialEq for Timestamp

Auto Trait Implementations§

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.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,