Struct core::num::NonZeroU128 1.28.0[−][src]
#[repr(transparent)]pub struct NonZeroU128(_);
Expand description
已知不等于零的整数。
这样可以进行一些内存布局优化。
For example, Option<NonZeroU128>
is the same size as u128
:
use std::mem::size_of; assert_eq!(size_of::<Option<core::num::NonZeroU128>>(), size_of::<u128>());Run
Implementations
返回大于或等于 n 的 2 的最小幂。
如果下一个 2 的幂大于类型的最大值,则检查是否溢出并返回 None
。
因此,结果不能归零。
Examples
#![feature(nonzero_ops)] let two = NonZeroU128::new(2)?; let three = NonZeroU128::new(3)?; let four = NonZeroU128::new(4)?; let max = NonZeroU128::new(u128::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::NonZeroU128::new(8).unwrap(); assert!(eight.is_power_of_two()); let ten = std::num::NonZeroU128::new(10).unwrap(); assert!(!ten.is_power_of_two());Run
Trait Implementations
type Output = NonZeroU128
type Output = NonZeroU128
应用 |
运算符后的结果类型。
执行 |
操作。 Read more
执行 |=
操作。 Read more
执行 |=
操作。 Read more
此运算将舍入为零,舍去精确结果的任何小数部分,并且不能为 panic。
type Output = u128
type Output = u128
应用 /
运算符后的结果类型。
Converts a NonZeroU128
into an u128
Converts NonZeroU16
to NonZeroU128
losslessly.
Converts NonZeroU32
to NonZeroU128
losslessly.
Converts NonZeroU64
to NonZeroU128
losslessly.
此方法测试 self
和 other
值是否相等,并由 ==
使用。 Read more
此方法测试 !=
。
此操作满足 n % d == n - (n / d) * d
,但不能为 panic。
type Output = u128
type Output = u128
应用 %
运算符后的结果类型。
Attempts to convert NonZeroI128
to NonZeroU128
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI16
to NonZeroU128
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI32
to NonZeroU128
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroI64
to NonZeroU128
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroIsize
to NonZeroU128
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroU8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroU16
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroIsize
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroU32
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroU64
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroUsize
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroI8
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroI16
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroI32
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroI64
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroU128
to NonZeroI128
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。
Attempts to convert NonZeroUsize
to NonZeroU128
.
type Error = TryFromIntError
type Error = TryFromIntError
发生转换错误时返回的类型。