pub trait Unsigned: Integral {
// Required methods
fn is_power_of_two(self) -> bool;
fn next_power_of_two(self) -> Self;
fn checked_next_power_of_two(self) -> Option<Self>;
}
Expand description
Declare that a type is an unsigned integer.
Required Methods§
Sourcefn is_power_of_two(self) -> bool
fn is_power_of_two(self) -> bool
Returns true
if and only if self == 2^k
for some k
.
Sourcefn next_power_of_two(self) -> Self
fn next_power_of_two(self) -> Self
Returns the smallest power of two greater than or equal to self
.
When return value overflows (i.e., self > (1 << (N-1))
for type uN
),
it panics in debug mode and return value is wrapped to 0 in release mode
(the only situation in which method can return 0).
Sourcefn checked_next_power_of_two(self) -> Option<Self>
fn checked_next_power_of_two(self) -> Option<Self>
Returns the smallest power of two greater than or equal to n
. If the
next power of two is greater than the type’s maximum value, None
is
returned, otherwise the power of two is wrapped in Some
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.