pub struct Size {
pub(crate) raw: u64,
}
Expand description
Size of a type in bytes.
Fields§
§raw: u64
Implementations§
Source§impl Size
impl Size
pub const ZERO: Size
Sourcepub fn from_bits(bits: impl TryInto<u64>) -> Size
pub fn from_bits(bits: impl TryInto<u64>) -> Size
Rounds bits
up to the next-higher byte boundary, if bits
is
not a multiple of 8.
pub fn from_bytes(bytes: impl TryInto<u64>) -> Size
pub fn bytes(self) -> u64
pub fn bytes_usize(self) -> usize
pub fn bits(self) -> u64
pub fn bits_usize(self) -> usize
pub fn align_to(self, align: Align) -> Size
pub fn is_aligned(self, align: Align) -> bool
pub fn checked_add<C: HasDataLayout>(self, offset: Size, cx: &C) -> Option<Size>
pub fn checked_mul<C: HasDataLayout>(self, count: u64, cx: &C) -> Option<Size>
Sourcepub fn sign_extend(self, value: u128) -> i128
pub fn sign_extend(self, value: u128) -> i128
Truncates value
to self
bits and then sign-extends it to 128 bits
(i.e., if it is negative, fill with 1’s on the left).
pub fn signed_int_min(&self) -> i128
pub fn signed_int_max(&self) -> i128
pub fn unsigned_int_max(&self) -> u128
Trait Implementations§
Source§impl AddAssign for Size
impl AddAssign for Size
Source§fn add_assign(&mut self, other: Size)
fn add_assign(&mut self, other: Size)
Performs the
+=
operation. Read moreSource§impl<__CTX> HashStable<__CTX> for Sizewhere
__CTX: HashStableContext,
impl<__CTX> HashStable<__CTX> for Sizewhere
__CTX: HashStableContext,
fn hash_stable(&self, __hcx: &mut __CTX, __hasher: &mut StableHasher)
Source§impl Ord for Size
impl Ord for Size
Source§impl PartialOrd for Size
impl PartialOrd for Size
Source§impl StableOrd for Size
impl StableOrd for Size
const CAN_USE_UNSTABLE_SORT: bool = true
Source§const THIS_IMPLEMENTATION_HAS_BEEN_TRIPLE_CHECKED: () = ()
const THIS_IMPLEMENTATION_HAS_BEEN_TRIPLE_CHECKED: () = ()
Marker to ensure that implementors have carefully considered
whether their
Ord
implementation obeys this trait’s contract.Source§impl Step for Size
impl Step for Size
Source§fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>)
fn steps_between(start: &Self, end: &Self) -> (usize, Option<usize>)
🔬This is a nightly-only experimental API. (
step_trait
)Returns the bounds on the number of successor steps required to get from
start
to end
like Iterator::size_hint()
. Read moreSource§fn forward_checked(start: Self, count: usize) -> Option<Self>
fn forward_checked(start: Self, count: usize) -> Option<Self>
🔬This is a nightly-only experimental API. (
step_trait
)Source§fn forward(start: Self, count: usize) -> Self
fn forward(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait
)Source§unsafe fn forward_unchecked(start: Self, count: usize) -> Self
unsafe fn forward_unchecked(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait
)Source§fn backward_checked(start: Self, count: usize) -> Option<Self>
fn backward_checked(start: Self, count: usize) -> Option<Self>
🔬This is a nightly-only experimental API. (
step_trait
)Source§fn backward(start: Self, count: usize) -> Self
fn backward(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait
)Source§unsafe fn backward_unchecked(start: Self, count: usize) -> Self
unsafe fn backward_unchecked(start: Self, count: usize) -> Self
🔬This is a nightly-only experimental API. (
step_trait
)impl Copy for Size
impl Eq for Size
impl StructuralPartialEq for Size
Auto Trait Implementations§
impl DynSend for Size
impl DynSync for Size
impl Freeze for Size
impl RefUnwindSafe for Size
impl Send for Size
impl Sync for Size
impl Unpin for Size
impl UnwindSafe for Size
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> StableCompare for Twhere
T: StableOrd,
impl<T> StableCompare for Twhere
T: StableOrd,
const CAN_USE_UNSTABLE_SORT: bool = T::CAN_USE_UNSTABLE_SORT
fn stable_cmp(&self, other: &T) -> Ordering
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 8 bytes