pub struct Duration {
pub seconds: i64,
pub nanos: i32,
/* private fields */
}Fields§
§seconds: i64Field 1: seconds
nanos: i32Field 2: nanos
Implementations§
Source§impl Duration
impl Duration
Sourcepub fn from_secs_nanos(seconds: i64, nanos: i32) -> Self
pub fn from_secs_nanos(seconds: i64, nanos: i32) -> Self
Create a Duration from seconds and nanoseconds.
§Panics
Panics in debug mode if nanos is outside [-999_999_999, 999_999_999]
or if its sign is inconsistent with seconds. When seconds is zero,
nanos may be positive, negative, or zero. In release mode the value
is stored as-is. Use Duration::from_secs_nanos_checked for a variant
that returns None on invalid input.
Sourcepub fn from_secs_nanos_checked(seconds: i64, nanos: i32) -> Option<Self>
pub fn from_secs_nanos_checked(seconds: i64, nanos: i32) -> Option<Self>
Create a Duration from seconds and nanoseconds, returning None
if nanos is out of range or has a sign inconsistent with seconds.
Sourcepub fn from_millis(millis: i64) -> Self
pub fn from_millis(millis: i64) -> Self
Create a Duration from a number of milliseconds.
The sign of millis determines the sign of both seconds and the
sub-second nanos field, per the protobuf sign-consistency rule.
Sourcepub fn from_micros(micros: i64) -> Self
pub fn from_micros(micros: i64) -> Self
Create a Duration from a number of microseconds.
Sourcepub fn from_nanos(nanos: i64) -> Self
pub fn from_nanos(nanos: i64) -> Self
Create a Duration from a number of nanoseconds.
Trait Implementations§
Source§impl<'arbitrary> Arbitrary<'arbitrary> for Duration
impl<'arbitrary> Arbitrary<'arbitrary> for Duration
Source§fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary(u: &mut Unstructured<'arbitrary>) -> Result<Self>
Self from the given unstructured data. Read moreSource§fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
fn arbitrary_take_rest(u: Unstructured<'arbitrary>) -> Result<Self>
Self from the entirety of the given
unstructured data. Read moreSource§fn size_hint(depth: usize) -> (usize, Option<usize>)
fn size_hint(depth: usize) -> (usize, Option<usize>)
Unstructured this type
needs to construct itself. Read moreSource§fn try_size_hint(
depth: usize,
) -> Result<(usize, Option<usize>), MaxRecursionReached>
fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>
Unstructured this type
needs to construct itself. Read moreSource§impl DefaultInstance for Duration
impl DefaultInstance for Duration
Source§fn default_instance() -> &'static Self
fn default_instance() -> &'static Self
Source§impl<'de> Deserialize<'de> for Duration
Available on crate feature json only.
impl<'de> Deserialize<'de> for Duration
json only.Source§fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
fn deserialize<D: Deserializer<'de>>(d: D) -> Result<Self, D::Error>
Deserializes from a decimal seconds string (e.g. "1.5s").
Source§impl Message for Duration
impl Message for Duration
Source§fn compute_size(&self) -> u32
fn compute_size(&self) -> u32
Returns the total encoded size in bytes.
The result is a u32; the protobuf specification requires all
messages to fit within 2 GiB (2,147,483,647 bytes), so a
compliant message will never overflow this type.
Source§fn write_to(&self, buf: &mut impl BufMut)
fn write_to(&self, buf: &mut impl BufMut)
Source§fn merge_field(
&mut self,
tag: Tag,
buf: &mut impl Buf,
depth: u32,
) -> Result<(), DecodeError>
fn merge_field( &mut self, tag: Tag, buf: &mut impl Buf, depth: u32, ) -> Result<(), DecodeError>
buf. Read moreSource§fn cached_size(&self) -> u32
fn cached_size(&self) -> u32
compute_size() call. Read moreSource§fn encode(&self, buf: &mut impl BufMut)
fn encode(&self, buf: &mut impl BufMut)
Source§fn encode_length_delimited(&self, buf: &mut impl BufMut)
fn encode_length_delimited(&self, buf: &mut impl BufMut)
Source§fn encode_to_bytes(&self) -> Bytes
fn encode_to_bytes(&self) -> Bytes
bytes::Bytes. Read moreSource§fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
fn decode(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>where
Self: Sized,
fn decode_from_slice(data: &[u8]) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
fn decode_length_delimited(buf: &mut impl Buf) -> Result<Self, DecodeError>where
Self: Sized,
Source§fn merge_to_limit(
&mut self,
buf: &mut impl Buf,
depth: u32,
limit: usize,
) -> Result<(), DecodeError>
fn merge_to_limit( &mut self, buf: &mut impl Buf, depth: u32, limit: usize, ) -> Result<(), DecodeError>
Source§fn merge_group(
&mut self,
buf: &mut impl Buf,
depth: u32,
field_number: u32,
) -> Result<(), DecodeError>
fn merge_group( &mut self, buf: &mut impl Buf, depth: u32, field_number: u32, ) -> Result<(), DecodeError>
buf, reading fields until an
EndGroup tag with the given field_number is encountered. Read moreSource§fn merge(&mut self, buf: &mut impl Buf, depth: u32) -> Result<(), DecodeError>
fn merge(&mut self, buf: &mut impl Buf, depth: u32) -> Result<(), DecodeError>
Source§fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>
fn merge_from_slice(&mut self, data: &[u8]) -> Result<(), DecodeError>
Source§fn merge_length_delimited(
&mut self,
buf: &mut impl Buf,
depth: u32,
) -> Result<(), DecodeError>
fn merge_length_delimited( &mut self, buf: &mut impl Buf, depth: u32, ) -> Result<(), DecodeError>
Source§impl TryFrom<Duration> for Duration
Available on crate feature std only.
impl TryFrom<Duration> for Duration
std only.Source§fn try_from(d: Duration) -> Result<Self, Self::Error>
fn try_from(d: Duration) -> Result<Self, Self::Error>
Convert a protobuf Duration to a std::time::Duration.
§Errors
Returns DurationError::InvalidNanos if nanos is outside
[-999_999_999, 999_999_999] or if its sign is inconsistent with
seconds (e.g. positive nanos with negative seconds).
Returns DurationError::NegativeDuration if the duration is
negative but otherwise well-formed (e.g. seconds < 0, nanos ≤ 0),
since std::time::Duration cannot represent negative values.