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>());RunImplementations
返回大于或等于 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());RunTrait Implementations
type Output = NonZeroU128
type Output = NonZeroU128
应用 | 运算符后的结果类型。
执行 | 操作。 Read more
执行 |= 操作。 Read more
执行 |= 操作。 Read more
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
此方法测试 !=。
如果存在,则此方法返回 self 和 other 值之间的顺序。 Read more
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
发生转换错误时返回的类型。