Struct std::num::NonZeroU8 1.28.0[−][src]
#[repr(transparent)]pub struct NonZeroU8(_);
Expand description
已知不等于零的整数。
这样可以进行一些内存布局优化。
For example, Option<NonZeroU8>
is the same size as u8
:
use std::mem::size_of; assert_eq!(size_of::<Option<core::num::NonZeroU8>>(), size_of::<u8>());Run
Implementations
返回大于或等于 n 的 2 的最小幂。
如果下一个 2 的幂大于类型的最大值,则检查是否溢出并返回 None
。
因此,结果不能归零。
Examples
#![feature(nonzero_ops)] let two = NonZeroU8::new(2)?; let three = NonZeroU8::new(3)?; let four = NonZeroU8::new(4)?; let max = NonZeroU8::new(u8::MAX)?; assert_eq!(Some(two), two.checked_next_power_of_two() ); assert_eq!(Some(four), three.checked_next_power_of_two() ); assert_eq!(None, max.checked_next_power_of_two() );Run
当且仅当某些 k
的 self == (1 << k)
时,才返回 true
。
在许多体系结构上,此函数可以在基础整数类型上比 is_power_of_two()
更好地执行,因为可以避免对零的特殊处理。
Examples
基本用法:
#![feature(nonzero_is_power_of_two)] let eight = std::num::NonZeroU8::new(8).unwrap(); assert!(eight.is_power_of_two()); let ten = std::num::NonZeroU8::new(10).unwrap(); assert!(!ten.is_power_of_two());Run
Trait Implementations
执行 |=
操作。 Read more
执行 |=
操作。 Read more
Converts NonZeroU8
to NonZeroI128
losslessly.
Converts NonZeroU8
to NonZeroI32
losslessly.
Converts NonZeroU8
to NonZeroU64
losslessly.
Converts NonZeroU8
to NonZeroUsize
losslessly.
Converts NonZeroU8
to NonZeroI16
losslessly.
Converts NonZeroU8
to NonZeroU16
losslessly.
Converts NonZeroU8
to NonZeroIsize
losslessly.
Converts NonZeroU8
to NonZeroI64
losslessly.
Converts NonZeroU8
to NonZeroU32
losslessly.
Converts NonZeroU8
to NonZeroU128
losslessly.
pub fn try_from(
value: NonZeroI128
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI128>>::Error>
[src]
pub fn try_from(
value: NonZeroI128
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI128>>::Error>
[src]Attempts to convert NonZeroI128
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroI16
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI16>>::Error>
[src]
pub fn try_from(
value: NonZeroI16
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI16>>::Error>
[src]Attempts to convert NonZeroI16
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroI32
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI32>>::Error>
[src]
pub fn try_from(
value: NonZeroI32
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI32>>::Error>
[src]Attempts to convert NonZeroI32
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroI64
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI64>>::Error>
[src]
pub fn try_from(
value: NonZeroI64
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroI64>>::Error>
[src]Attempts to convert NonZeroI64
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroIsize
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroIsize>>::Error>
[src]
pub fn try_from(
value: NonZeroIsize
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroIsize>>::Error>
[src]Attempts to convert NonZeroIsize
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroU128
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU128>>::Error>
[src]
pub fn try_from(
value: NonZeroU128
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU128>>::Error>
[src]Attempts to convert NonZeroU128
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroU16
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU16>>::Error>
[src]
pub fn try_from(
value: NonZeroU16
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU16>>::Error>
[src]Attempts to convert NonZeroU16
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroU32
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU32>>::Error>
[src]
pub fn try_from(
value: NonZeroU32
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU32>>::Error>
[src]Attempts to convert NonZeroU32
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroU64
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU64>>::Error>
[src]
pub fn try_from(
value: NonZeroU64
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroU64>>::Error>
[src]Attempts to convert NonZeroU64
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
pub fn try_from(
value: NonZeroUsize
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroUsize>>::Error>
[src]
pub fn try_from(
value: NonZeroUsize
) -> Result<NonZeroU8, <NonZeroU8 as TryFrom<NonZeroUsize>>::Error>
[src]Attempts to convert NonZeroUsize
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。