Struct zerocopy::byteorder::U64 [−][src]
#[repr(transparent)]pub struct U64<O: ByteOrder>(_, _);
A 64-bit unsigned integer
stored in O
byte order.
U64
is like the native u64
type with
two major differences: First, it has no alignment requirement (its alignment is 1).
Second, the endianness of its memory layout is given by the type parameter O
.
A U64
can be constructed using
the new
method, and its contained value can be obtained as a native
u64
using the get
method, or updated in place with
the set
method. In all cases, if the endianness O
is not the same as the
endianness of the current platform, an endianness swap will be performed in
order to uphold the invariants that a) the layout of U64
has endianness O
and that, b) the layout of u64
has
the platform’s native endianness.
U64
implements FromBytes
, AsBytes
, and Unaligned
,
making it useful for parsing and serialization. See the module documentation for an
example of how it can be used for parsing UDP packets.
Implementations
impl<O: ByteOrder> U64<O>
[src]
impl<O: ByteOrder> U64<O>
[src]pub const ZERO: U64<O>
[src]
The value zero.
This constant should be preferred to constructing a new value
using new
, as new
may perform an endianness swap depending
on the endianness and platform.
pub const MAX_VALUE: U64<O>
[src]
The maximum value.
This constant should be preferred to constructing a new value using
new
, as new
may perform an endianness swap depending on the
endianness O
and the endianness of the platform.
pub fn new(n: u64) -> U64<O>
[src]
Constructs a new value, possibly performing an endianness swap
to guarantee that the returned value has endianness O
.
pub fn get(self) -> u64
[src]
Returns the value as a primitive type, possibly performing an endianness swap to guarantee that the return value has the endianness of the native platform.
pub fn set(&mut self, n: u64)
[src]
Updates the value in place as a primitive type, possibly
performing an endianness swap to guarantee that the stored value
has the endianness O
.
Trait Implementations
impl<O: ByteOrder> AsBytes for U64<O>
[src]
impl<O: ByteOrder> AsBytes for U64<O>
[src]fn only_derive_is_allowed_to_implement_this_trait() where
Self: Sized,
[src]
Self: Sized,
fn as_bytes(&self) -> &[u8]
[src]
fn as_bytes_mut(&mut self) -> &mut [u8] where
Self: FromBytes,
[src]
Self: FromBytes,
impl<O: Clone + ByteOrder> Clone for U64<O>
[src]
impl<O: Clone + ByteOrder> Clone for U64<O>
[src]fn clone(&self) -> U64<O>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<O: ByteOrder> FromBytes for U64<O> where
PhantomData<O>: FromBytes,
[src]
impl<O: ByteOrder> FromBytes for U64<O> where
PhantomData<O>: FromBytes,
[src]fn only_derive_is_allowed_to_implement_this_trait() where
Self: Sized,
[src]
Self: Sized,
impl<O: ByteOrder> StructuralEq for U64<O>
[src]
impl<O: ByteOrder> StructuralEq for U64<O>
[src]impl<O: ByteOrder> StructuralPartialEq for U64<O>
[src]
impl<O: ByteOrder> StructuralPartialEq for U64<O>
[src]impl<O: ByteOrder, P: ByteOrder> TryFrom<U128<P>> for U64<O>
[src]
impl<O: ByteOrder, P: ByteOrder> TryFrom<U128<P>> for U64<O>
[src]type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(x: U128<P>) -> Result<U64<O>, TryFromIntError>
[src]
impl<O: ByteOrder, P: ByteOrder> TryFrom<U64<P>> for U16<O>
[src]
impl<O: ByteOrder, P: ByteOrder> TryFrom<U64<P>> for U16<O>
[src]type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(x: U64<P>) -> Result<U16<O>, TryFromIntError>
[src]
impl<O: ByteOrder, P: ByteOrder> TryFrom<U64<P>> for U32<O>
[src]
impl<O: ByteOrder, P: ByteOrder> TryFrom<U64<P>> for U32<O>
[src]type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(x: U64<P>) -> Result<U32<O>, TryFromIntError>
[src]
impl<O: ByteOrder> TryFrom<u128> for U64<O>
[src]
impl<O: ByteOrder> TryFrom<u128> for U64<O>
[src]type Error = TryFromIntError
The type returned in the event of a conversion error.
fn try_from(x: u128) -> Result<U64<O>, TryFromIntError>
[src]
impl<O: ByteOrder> Unaligned for U64<O> where
PhantomData<O>: Unaligned,
[src]
impl<O: ByteOrder> Unaligned for U64<O> where
PhantomData<O>: Unaligned,
[src]fn only_derive_is_allowed_to_implement_this_trait() where
Self: Sized,
[src]
Self: Sized,