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

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

Performs copy-assignment from source. Read more
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 · 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 Copy for PowerOfTwo

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> 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

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,