pub struct Duration {
pub seconds: i32,
pub fraction: u32,
}Expand description
DDS Duration (signed seconds + unsigned 2^-32-fractions).
Die Spec kennt zwei Spezialwerte:
DURATION_INFINITE:{ seconds: 0x7FFFFFFF, fraction: 0xFFFFFFFF }.DURATION_ZERO:{ seconds: 0, fraction: 0 }.
Fields§
§seconds: i32Sekundenanteil (signed 32 bit).
fraction: u32Bruchteil-Anteil (2^-32-Sekunden).
Implementations§
Source§impl Duration
impl Duration
Sourcepub const fn from_millis(ms: i32) -> Duration
pub const fn from_millis(ms: i32) -> Duration
Erzeugt Duration aus einer Millisekundenzahl.
Zeit ist als { seconds: i32, fraction: u32 (2^-32 s) } repraesentiert
— fraction ist unsigned. Negative Durations beschreiben die Zeit
durch negative seconds + positive fraction, so dass
(seconds + fraction*2^-32) stetig ueber 0 hinweg laeuft. Mit
div_euclid/rem_euclid bleibt der Remainder immer [0, 1000).
Beispiele:
from_millis(1500)={1, 2^31}(1.5 s).from_millis(-500)={-1, 2^31}(= -1 + 0.5 = -0.5 s).from_millis(-1500)={-2, 2^31}(= -2 + 0.5 = -1.5 s).
Sourcepub const fn is_infinite(self) -> bool
pub const fn is_infinite(self) -> bool
true wenn self == INFINITE.
Sourcepub const fn to_nanos(self) -> u128
pub const fn to_nanos(self) -> u128
Konvertiert in Nanosekunden. INFINITE und negative Durations
liefern u128::MAX bzw. saturieren auf 0 (Caller behandelt
u128::MAX als “nie ablaufen”).
Sourcepub fn encode_into(self, w: &mut BufferWriter) -> Result<(), EncodeError>
pub fn encode_into(self, w: &mut BufferWriter) -> Result<(), EncodeError>
Sourcepub fn decode_from(r: &mut BufferReader<'_>) -> Result<Duration, DecodeError>
pub fn decode_from(r: &mut BufferReader<'_>) -> Result<Duration, DecodeError>
Sourcepub fn to_bytes_le(self) -> [u8; 8]
pub fn to_bytes_le(self) -> [u8; 8]
8-byte-Array (LE) — nuetzlich fuer in-place-Copies in PL_CDR-Values.
Sourcepub fn from_bytes_le(bytes: [u8; 8]) -> Duration
pub fn from_bytes_le(bytes: [u8; 8]) -> Duration
Aus 8-byte-LE-Array.