Skip to main content

PowerOfTwo

Struct PowerOfTwo 

Source
pub struct PowerOfTwo(/* private fields */);

Implementations§

Source§

impl PowerOfTwo

Source

pub const P0: Self

Source

pub const V1: Self = Self::P0

Source

pub const P1: Self

Source

pub const V2: Self = Self::P1

Source

pub const P2: Self

Source

pub const V4: Self = Self::P2

Source

pub const P3: Self

Source

pub const V8: Self = Self::P3

Source

pub const P4: Self

Source

pub const V16: Self = Self::P4

Source

pub const P5: Self

Source

pub const V32: Self = Self::P5

Source

pub const P6: Self

Source

pub const V64: Self = Self::P6

Source

pub const P7: Self

Source

pub const V128: Self = Self::P7

Source

pub const P8: Self

Source

pub const V256: Self = Self::P8

Source

pub const P9: Self

Source

pub const V512: Self = Self::P9

Source

pub const P10: Self

Source

pub const V1024: Self = Self::P10

Source

pub const P11: Self

Source

pub const V2048: Self = Self::P11

Source

pub const P12: Self

Source

pub const V4096: Self = Self::P12

Source

pub const P13: Self

Source

pub const V8192: Self = Self::P13

Source

pub const P14: Self

Source

pub const V16384: Self = Self::P14

Source

pub const P15: Self

Source

pub const V32768: Self = Self::P15

Source

pub const P16: Self

Source

pub const V65536: Self = Self::P16

Source

pub const P17: Self

Source

pub const V131072: Self = Self::P17

Source

pub const P18: Self

Source

pub const V262144: Self = Self::P18

Source

pub const P19: Self

Source

pub const V524288: Self = Self::P19

Source

pub const P20: Self

Source

pub const V1048576: Self = Self::P20

Source

pub const P21: Self

Source

pub const V2097152: Self = Self::P21

Source

pub const P22: Self

Source

pub const V4194304: Self = Self::P22

Source

pub const P23: Self

Source

pub const V8388608: Self = Self::P23

Source

pub const P24: Self

Source

pub const V16777216: Self = Self::P24

Source

pub const P25: Self

Source

pub const V33554432: Self = Self::P25

Source

pub const P26: Self

Source

pub const V67108864: Self = Self::P26

Source

pub const P27: Self

Source

pub const V134217728: Self = Self::P27

Source

pub const P28: Self

Source

pub const V268435456: Self = Self::P28

Source

pub const P29: Self

Source

pub const V536870912: Self = Self::P29

Source

pub const P30: Self

Source

pub const V1073741824: Self = Self::P30

Source

pub const P31: Self

Source

pub const V2147483648: Self = Self::P31

Source§

impl PowerOfTwo

Source

pub const P32: Self

Available on 64-bit only.
Source

pub const V4294967296: Self = Self::P32

Available on 64-bit only.
Source

pub const P33: Self

Available on 64-bit only.
Source

pub const V8589934592: Self = Self::P33

Available on 64-bit only.
Source

pub const P34: Self

Available on 64-bit only.
Source

pub const V17179869184: Self = Self::P34

Available on 64-bit only.
Source

pub const P35: Self

Available on 64-bit only.
Source

pub const V34359738368: Self = Self::P35

Available on 64-bit only.
Source

pub const P36: Self

Available on 64-bit only.
Source

pub const V68719476736: Self = Self::P36

Available on 64-bit only.
Source

pub const P37: Self

Available on 64-bit only.
Source

pub const V137438953472: Self = Self::P37

Available on 64-bit only.
Source

pub const P38: Self

Available on 64-bit only.
Source

pub const V274877906944: Self = Self::P38

Available on 64-bit only.
Source

pub const P39: Self

Available on 64-bit only.
Source

pub const V549755813888: Self = Self::P39

Available on 64-bit only.
Source

pub const P40: Self

Available on 64-bit only.
Source

pub const V1099511627776: Self = Self::P40

Available on 64-bit only.
Source

pub const P41: Self

Available on 64-bit only.
Source

pub const V2199023255552: Self = Self::P41

Available on 64-bit only.
Source

pub const P42: Self

Available on 64-bit only.
Source

pub const V4398046511104: Self = Self::P42

Available on 64-bit only.
Source

pub const P43: Self

Available on 64-bit only.
Source

pub const V8796093022208: Self = Self::P43

Available on 64-bit only.
Source

pub const P44: Self

Available on 64-bit only.
Source

pub const V17592186044416: Self = Self::P44

Available on 64-bit only.
Source

pub const P45: Self

Available on 64-bit only.
Source

pub const V35184372088832: Self = Self::P45

Available on 64-bit only.
Source

pub const P46: Self

Available on 64-bit only.
Source

pub const V70368744177664: Self = Self::P46

Available on 64-bit only.
Source

pub const P47: Self

Available on 64-bit only.
Source

pub const V140737488355328: Self = Self::P47

Available on 64-bit only.
Source

pub const P48: Self

Available on 64-bit only.
Source

pub const V281474976710656: Self = Self::P48

Available on 64-bit only.
Source

pub const P49: Self

Available on 64-bit only.
Source

pub const V562949953421312: Self = Self::P49

Available on 64-bit only.
Source

pub const P50: Self

Available on 64-bit only.
Source

pub const V1125899906842624: Self = Self::P50

Available on 64-bit only.
Source

pub const P51: Self

Available on 64-bit only.
Source

pub const V2251799813685248: Self = Self::P51

Available on 64-bit only.
Source

pub const P52: Self

Available on 64-bit only.
Source

pub const V4503599627370496: Self = Self::P52

Available on 64-bit only.
Source

pub const P53: Self

Available on 64-bit only.
Source

pub const V9007199254740992: Self = Self::P53

Available on 64-bit only.
Source

pub const P54: Self

Available on 64-bit only.
Source

pub const V18014398509481984: Self = Self::P54

Available on 64-bit only.
Source

pub const P55: Self

Available on 64-bit only.
Source

pub const V36028797018963968: Self = Self::P55

Available on 64-bit only.
Source

pub const P56: Self

Available on 64-bit only.
Source

pub const V72057594037927936: Self = Self::P56

Available on 64-bit only.
Source

pub const P57: Self

Available on 64-bit only.
Source

pub const V144115188075855872: Self = Self::P57

Available on 64-bit only.
Source

pub const P58: Self

Available on 64-bit only.
Source

pub const V288230376151711744: Self = Self::P58

Available on 64-bit only.
Source

pub const P59: Self

Available on 64-bit only.
Source

pub const V576460752303423488: Self = Self::P59

Available on 64-bit only.
Source

pub const P60: Self

Available on 64-bit only.
Source

pub const V1152921504606846976: Self = Self::P60

Available on 64-bit only.
Source

pub const P61: Self

Available on 64-bit only.
Source

pub const V2305843009213693952: Self = Self::P61

Available on 64-bit only.
Source

pub const P62: Self

Available on 64-bit only.
Source

pub const V4611686018427387904: Self = Self::P62

Available on 64-bit only.
Source

pub const P63: Self

Available on 64-bit only.
Source

pub const V9223372036854775808: Self = Self::P63

Available on 64-bit only.
Source§

impl PowerOfTwo

Source

pub const fn new(value: usize) -> Result<Self, NotPowerOfTwo>

Create a new PowerOfTwo if the given value is greater a power of two.

Source

pub const fn next(value: usize) -> Option<Self>

Return the smallest power of two greater than or equal to value. If the next power of two is greater than usize::MAX, None is returned.

Source

pub const unsafe fn new_unchecked(value: NonZeroUsize) -> Self

Create a new PowerOfTwo without checking whether the value is a power of two.

§Safety

The value must be a power of two.

Source

pub const fn into_inner(self) -> NonZeroUsize

Consume self and return the inner value.

Source

pub const fn raw(self) -> usize

Consume self and return the inner value as a usize.

Source

pub const fn from_align(layout: &Layout) -> Self

Construct self from the alignment in layout.

Source

pub const fn alignment_of<T>() -> Self

Return the alignment of T as a power of two.

Source

pub const fn arg_mod(self, lhs: usize) -> usize

Compute the operation lhs % self.

§Note

The argument order of this function is reversed from the typical align_offset method in the standard library.

Source

pub const fn arg_align_offset(self, lhs: usize) -> usize

Compute the amount x that would have to be added to lhs so the quantity lhs + x is a multiple of self.

§Note

The argument order of this function is reversed from the typical align_offset method in the standard library.

Source

pub const fn arg_checked_next_multiple_of(self, lhs: usize) -> Option<usize>

Calculate the smallest value greater than or equal to lhs that is a multiple of self. Return None if the operation would result in an overflow.

Trait Implementations§

Source§

impl Clone for PowerOfTwo

Source§

fn clone(&self) -> PowerOfTwo

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for PowerOfTwo

Source§

impl Debug for PowerOfTwo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

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

impl From<PowerOfTwo> for usize

Source§

fn from(value: PowerOfTwo) -> Self

Converts to this type from the input type.
Source§

impl PartialEq for PowerOfTwo

Source§

fn eq(&self, other: &PowerOfTwo) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 (const: unstable) · Source§

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 StructuralPartialEq for PowerOfTwo

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> AsyncFriendly for T
where T: Send + Sync + 'static,

Source§

impl<T> Boilerplate for T
where T: Copy + Send + Sync + Debug + PartialEq + 'static,

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

Source§

fn by_ref(&self) -> &T

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> Generator<T> for T
where T: Clone,

Source§

fn generate(&mut self) -> T

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

Source§

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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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 more
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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