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§

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) -> <Timestamp as Add<Duration>>::Output

Performs the + operation. Read more
Source§

impl Clone for Timestamp

Source§

fn clone(&self) -> Timestamp

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

const 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<(), Error>

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

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

Source§

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

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

impl From<ROSTime> for Timestamp

Source§

fn from(rt: ROSTime) -> Timestamp

Converts to this type from the input type.
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§

const 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_> Readable<'a_, C_> for Timestamp
where C_: Context,

Source§

fn read_from<R_>(_reader_: &mut R_) -> Result<Timestamp, <C_ as Context>::Error>
where R_: Reader<'a_, C_>,

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 as Serializer>::Ok, <__S as Serializer>::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) -> <Timestamp as Sub<Duration>>::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: Timestamp) -> 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 TryFrom<Timestamp> for ROSTime

Source§

type Error = TimestampConversionError

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

fn try_from(ts: Timestamp) -> Result<ROSTime, TimestampConversionError>

Performs the conversion.
Source§

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

Source§

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

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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

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