Struct NonZero

1.79.0 ยท Source
pub struct NonZero<T>(/* private fields */)
where
    T: ZeroablePrimitive;
Expand description

A value that is known not to equal zero.

This enables some memory layout optimization. For example, Option<NonZero<u32>> is the same size as u32:

use core::{num::NonZero};

assert_eq!(size_of::<Option<NonZero<u32>>>(), size_of::<u32>());

ยงLayout

NonZero<T> is guaranteed to have the same layout and bit validity as T with the exception that the all-zero bit pattern is invalid. Option<NonZero<T>> is guaranteed to be compatible with T, including in FFI.

Thanks to the null pointer optimization, NonZero<T> and Option<NonZero<T>> are guaranteed to have the same size and alignment:

use std::num::NonZero;

assert_eq!(size_of::<NonZero<u32>>(), size_of::<Option<NonZero<u32>>>());
assert_eq!(align_of::<NonZero<u32>>(), align_of::<Option<NonZero<u32>>>());

Implementationsยง

Sourceยง

impl<T> NonZero<T>

1.28.0 (const: 1.47.0) ยท Source

pub const fn new(n: T) -> Option<NonZero<T>>

Creates a non-zero if the given value is not zero.

1.28.0 (const: 1.28.0) ยท Source

pub const unsafe fn new_unchecked(n: T) -> NonZero<T>

Creates a non-zero without checking whether the value is non-zero. This results in undefined behavior if the value is zero.

ยงSafety

The value must not be zero.

Source

pub fn from_mut(n: &mut T) -> Option<&mut NonZero<T>>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_from_mut)

Converts a reference to a non-zero mutable reference if the referenced value is not zero.

Source

pub unsafe fn from_mut_unchecked(n: &mut T) -> &mut NonZero<T>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_from_mut)

Converts a mutable reference to a non-zero mutable reference without checking whether the referenced value is non-zero. This results in undefined behavior if the referenced value is zero.

ยงSafety

The referenced value must not be zero.

1.28.0 (const: 1.34.0) ยท Source

pub const fn get(self) -> T

Returns the contained value as a primitive type.

Sourceยง

impl NonZero<u8>

1.67.0 ยท Source

pub const BITS: u32 = 8u32

The size of this non-zero integer type in bits.

This value is equal to u8::BITS.

ยงExamples
assert_eq!(NonZero::<u8>::BITS, u8::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<u8>

The smallest value that can be represented by this non-zero integer type, 1.

ยงExamples
assert_eq!(NonZero::<u8>::MIN.get(), 1u8);
1.70.0 ยท Source

pub const MAX: NonZero<u8>

The largest value that can be represented by this non-zero integer type, equal to u8::MAX.

ยงExamples
assert_eq!(NonZero::<u8>::MAX.get(), u8::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u8>::new(u8::MAX)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u8>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u8>::new(0b_01100100)?;
let b = NonZero::<u8>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u8>::new(0b_01100100)?;
let b = NonZero::<u8>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<u8>::new(0b100_0000)?;
let b = NonZero::<u8>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x82u8)?;
let m = NonZero::new(0xa)?;

assert_eq!(n.rotate_left(2), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xau8)?;
let m = NonZero::new(0x82)?;

assert_eq!(n.rotate_right(2), m);
Source

pub const fn swap_bytes(self) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12u8)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x12)?);
Source

pub const fn reverse_bits(self) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12u8)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x48)?);
Source

pub const fn from_be(x: NonZero<u8>) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU8;
let n = NonZero::new(0x1Au8)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroU8::from_be(n), n)
} else {
    assert_eq!(NonZeroU8::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<u8>) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU8;
let n = NonZero::new(0x1Au8)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroU8::from_le(n), n)
} else {
    assert_eq!(NonZeroU8::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au8)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au8)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_add(self, other: u8) -> Option<NonZero<u8>>

Adds an unsigned integer to a non-zero value. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let one = NonZero::new(1u8)?;
let two = NonZero::new(2u8)?;
let max = NonZero::new(u8::MAX)?;

assert_eq!(Some(two), one.checked_add(1));
assert_eq!(None, max.checked_add(1));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_add(self, other: u8) -> NonZero<u8>

Adds an unsigned integer to a non-zero value. Return NonZero::<u8>::MAX on overflow.

ยงExamples
let one = NonZero::new(1u8)?;
let two = NonZero::new(2u8)?;
let max = NonZero::new(u8::MAX)?;

assert_eq!(two, one.saturating_add(1));
assert_eq!(max, max.saturating_add(1));
Source

pub const unsafe fn unchecked_add(self, other: u8) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Adds an unsigned integer to a non-zero value, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self + rhs > u8::MAX.

ยงExamples
#![feature(nonzero_ops)]

let one = NonZero::new(1u8)?;
let two = NonZero::new(2u8)?;

assert_eq!(two, unsafe { one.unchecked_add(1) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_next_power_of_two(self) -> Option<NonZero<u8>>

Returns the smallest power of two greater than or equal to self. Checks for overflow and returns None if the next power of two is greater than the typeโ€™s maximum value. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u8)?;
let three = NonZero::new(3u8)?;
let four = NonZero::new(4u8)?;
let max = NonZero::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() );
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

This is the same operation as u8::ilog2, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(7u8)?.ilog2(), 2);
assert_eq!(NonZero::new(8u8)?.ilog2(), 3);
assert_eq!(NonZero::new(9u8)?.ilog2(), 3);
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

This is the same operation as u8::ilog10, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(99u8)?.ilog10(), 1);
assert_eq!(NonZero::new(100u8)?.ilog10(), 2);
assert_eq!(NonZero::new(101u8)?.ilog10(), 2);
1.85.0 (const: 1.85.0) ยท Source

pub const fn midpoint(self, rhs: NonZero<u8>) -> NonZero<u8>

Calculates the midpoint (average) between self and rhs.

midpoint(a, b) is (a + b) >> 1 as if it were performed in a sufficiently-large signed integral type. This implies that the result is always rounded towards negative infinity and that no overflow will ever occur.

ยงExamples
let one = NonZero::new(1u8)?;
let two = NonZero::new(2u8)?;
let four = NonZero::new(4u8)?;

assert_eq!(one.midpoint(four), two);
assert_eq!(four.midpoint(one), two);
1.59.0 (const: 1.59.0) ยท Source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == (1 << k) for some k.

On many architectures, this function can perform better than is_power_of_two() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let eight = NonZero::new(8u8)?;
assert!(eight.is_power_of_two());
let ten = NonZero::new(10u8)?;
assert!(!ten.is_power_of_two());
1.84.0 (const: 1.84.0) ยท Source

pub const fn isqrt(self) -> NonZero<u8>

Returns the square root of the number, rounded down.

ยงExamples

Basic usage:

let ten = NonZero::new(10u8)?;
let three = NonZero::new(3u8)?;

assert_eq!(ten.isqrt(), three);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_signed(self) -> NonZero<i8>

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::<u8>::MAX;

assert_eq!(n.cast_signed(), NonZero::new(-1i8).unwrap());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<u8>) -> Option<NonZero<u8>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u8)?;
let four = NonZero::new(4u8)?;
let max = NonZero::new(u8::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<u8>) -> NonZero<u8>

Multiplies two non-zero integers together. Return NonZero::<u8>::MAX on overflow.

ยงExamples
let two = NonZero::new(2u8)?;
let four = NonZero::new(4u8)?;
let max = NonZero::new(u8::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<u8>) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > u8::MAX.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2u8)?;
let four = NonZero::new(4u8)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<u8>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3u8)?;
let twenty_seven = NonZero::new(27u8)?;
let half_max = NonZero::new(u8::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<u8>

Raise non-zero value to an integer power. Return NonZero::<u8>::MAX on overflow.

ยงExamples
let three = NonZero::new(3u8)?;
let twenty_seven = NonZero::new(27u8)?;
let max = NonZero::new(u8::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<u8>

Source

pub const fn div_ceil(self, rhs: NonZero<u8>) -> NonZero<u8>

๐Ÿ”ฌThis is a nightly-only experimental API. (unsigned_nonzero_div_ceil)

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

The result is guaranteed to be non-zero.

ยงExamples
let one = NonZero::new(1u8).unwrap();
let max = NonZero::new(u8::MAX).unwrap();
assert_eq!(one.div_ceil(max), one);

let two = NonZero::new(2u8).unwrap();
let three = NonZero::new(3u8).unwrap();
assert_eq!(three.div_ceil(two), two);
Sourceยง

impl NonZero<u16>

1.67.0 ยท Source

pub const BITS: u32 = 16u32

The size of this non-zero integer type in bits.

This value is equal to u16::BITS.

ยงExamples
assert_eq!(NonZero::<u16>::BITS, u16::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<u16>

The smallest value that can be represented by this non-zero integer type, 1.

ยงExamples
assert_eq!(NonZero::<u16>::MIN.get(), 1u16);
1.70.0 ยท Source

pub const MAX: NonZero<u16>

The largest value that can be represented by this non-zero integer type, equal to u16::MAX.

ยงExamples
assert_eq!(NonZero::<u16>::MAX.get(), u16::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u16>::new(u16::MAX)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u16>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u16>::new(0b_01100100)?;
let b = NonZero::<u16>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u16>::new(0b_01100100)?;
let b = NonZero::<u16>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<u16>::new(0b100_0000)?;
let b = NonZero::<u16>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xa003u16)?;
let m = NonZero::new(0x3a)?;

assert_eq!(n.rotate_left(4), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x3au16)?;
let m = NonZero::new(0xa003)?;

assert_eq!(n.rotate_right(4), m);
Source

pub const fn swap_bytes(self) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234u16)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x3412)?);
Source

pub const fn reverse_bits(self) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234u16)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x2c48)?);
Source

pub const fn from_be(x: NonZero<u16>) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU16;
let n = NonZero::new(0x1Au16)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroU16::from_be(n), n)
} else {
    assert_eq!(NonZeroU16::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<u16>) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU16;
let n = NonZero::new(0x1Au16)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroU16::from_le(n), n)
} else {
    assert_eq!(NonZeroU16::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au16)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au16)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_add(self, other: u16) -> Option<NonZero<u16>>

Adds an unsigned integer to a non-zero value. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let one = NonZero::new(1u16)?;
let two = NonZero::new(2u16)?;
let max = NonZero::new(u16::MAX)?;

assert_eq!(Some(two), one.checked_add(1));
assert_eq!(None, max.checked_add(1));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_add(self, other: u16) -> NonZero<u16>

Adds an unsigned integer to a non-zero value. Return NonZero::<u16>::MAX on overflow.

ยงExamples
let one = NonZero::new(1u16)?;
let two = NonZero::new(2u16)?;
let max = NonZero::new(u16::MAX)?;

assert_eq!(two, one.saturating_add(1));
assert_eq!(max, max.saturating_add(1));
Source

pub const unsafe fn unchecked_add(self, other: u16) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Adds an unsigned integer to a non-zero value, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self + rhs > u16::MAX.

ยงExamples
#![feature(nonzero_ops)]

let one = NonZero::new(1u16)?;
let two = NonZero::new(2u16)?;

assert_eq!(two, unsafe { one.unchecked_add(1) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_next_power_of_two(self) -> Option<NonZero<u16>>

Returns the smallest power of two greater than or equal to self. Checks for overflow and returns None if the next power of two is greater than the typeโ€™s maximum value. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u16)?;
let three = NonZero::new(3u16)?;
let four = NonZero::new(4u16)?;
let max = NonZero::new(u16::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() );
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

This is the same operation as u16::ilog2, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(7u16)?.ilog2(), 2);
assert_eq!(NonZero::new(8u16)?.ilog2(), 3);
assert_eq!(NonZero::new(9u16)?.ilog2(), 3);
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

This is the same operation as u16::ilog10, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(99u16)?.ilog10(), 1);
assert_eq!(NonZero::new(100u16)?.ilog10(), 2);
assert_eq!(NonZero::new(101u16)?.ilog10(), 2);
1.85.0 (const: 1.85.0) ยท Source

pub const fn midpoint(self, rhs: NonZero<u16>) -> NonZero<u16>

Calculates the midpoint (average) between self and rhs.

midpoint(a, b) is (a + b) >> 1 as if it were performed in a sufficiently-large signed integral type. This implies that the result is always rounded towards negative infinity and that no overflow will ever occur.

ยงExamples
let one = NonZero::new(1u16)?;
let two = NonZero::new(2u16)?;
let four = NonZero::new(4u16)?;

assert_eq!(one.midpoint(four), two);
assert_eq!(four.midpoint(one), two);
1.59.0 (const: 1.59.0) ยท Source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == (1 << k) for some k.

On many architectures, this function can perform better than is_power_of_two() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let eight = NonZero::new(8u16)?;
assert!(eight.is_power_of_two());
let ten = NonZero::new(10u16)?;
assert!(!ten.is_power_of_two());
1.84.0 (const: 1.84.0) ยท Source

pub const fn isqrt(self) -> NonZero<u16>

Returns the square root of the number, rounded down.

ยงExamples

Basic usage:

let ten = NonZero::new(10u16)?;
let three = NonZero::new(3u16)?;

assert_eq!(ten.isqrt(), three);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_signed(self) -> NonZero<i16>

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::<u16>::MAX;

assert_eq!(n.cast_signed(), NonZero::new(-1i16).unwrap());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<u16>) -> Option<NonZero<u16>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u16)?;
let four = NonZero::new(4u16)?;
let max = NonZero::new(u16::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<u16>) -> NonZero<u16>

Multiplies two non-zero integers together. Return NonZero::<u16>::MAX on overflow.

ยงExamples
let two = NonZero::new(2u16)?;
let four = NonZero::new(4u16)?;
let max = NonZero::new(u16::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<u16>) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > u16::MAX.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2u16)?;
let four = NonZero::new(4u16)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<u16>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3u16)?;
let twenty_seven = NonZero::new(27u16)?;
let half_max = NonZero::new(u16::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<u16>

Raise non-zero value to an integer power. Return NonZero::<u16>::MAX on overflow.

ยงExamples
let three = NonZero::new(3u16)?;
let twenty_seven = NonZero::new(27u16)?;
let max = NonZero::new(u16::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<u16>

Source

pub const fn div_ceil(self, rhs: NonZero<u16>) -> NonZero<u16>

๐Ÿ”ฌThis is a nightly-only experimental API. (unsigned_nonzero_div_ceil)

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

The result is guaranteed to be non-zero.

ยงExamples
let one = NonZero::new(1u16).unwrap();
let max = NonZero::new(u16::MAX).unwrap();
assert_eq!(one.div_ceil(max), one);

let two = NonZero::new(2u16).unwrap();
let three = NonZero::new(3u16).unwrap();
assert_eq!(three.div_ceil(two), two);
Sourceยง

impl NonZero<u32>

1.67.0 ยท Source

pub const BITS: u32 = 32u32

The size of this non-zero integer type in bits.

This value is equal to u32::BITS.

ยงExamples
assert_eq!(NonZero::<u32>::BITS, u32::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<u32>

The smallest value that can be represented by this non-zero integer type, 1.

ยงExamples
assert_eq!(NonZero::<u32>::MIN.get(), 1u32);
1.70.0 ยท Source

pub const MAX: NonZero<u32>

The largest value that can be represented by this non-zero integer type, equal to u32::MAX.

ยงExamples
assert_eq!(NonZero::<u32>::MAX.get(), u32::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u32>::new(u32::MAX)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u32>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u32>::new(0b_01100100)?;
let b = NonZero::<u32>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u32>::new(0b_01100100)?;
let b = NonZero::<u32>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<u32>::new(0b100_0000)?;
let b = NonZero::<u32>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x10000b3u32)?;
let m = NonZero::new(0xb301)?;

assert_eq!(n.rotate_left(8), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xb301u32)?;
let m = NonZero::new(0x10000b3)?;

assert_eq!(n.rotate_right(8), m);
Source

pub const fn swap_bytes(self) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678u32)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x78563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678u32)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x1e6a2c48)?);
Source

pub const fn from_be(x: NonZero<u32>) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU32;
let n = NonZero::new(0x1Au32)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroU32::from_be(n), n)
} else {
    assert_eq!(NonZeroU32::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<u32>) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU32;
let n = NonZero::new(0x1Au32)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroU32::from_le(n), n)
} else {
    assert_eq!(NonZeroU32::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au32)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au32)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_add(self, other: u32) -> Option<NonZero<u32>>

Adds an unsigned integer to a non-zero value. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let one = NonZero::new(1u32)?;
let two = NonZero::new(2u32)?;
let max = NonZero::new(u32::MAX)?;

assert_eq!(Some(two), one.checked_add(1));
assert_eq!(None, max.checked_add(1));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_add(self, other: u32) -> NonZero<u32>

Adds an unsigned integer to a non-zero value. Return NonZero::<u32>::MAX on overflow.

ยงExamples
let one = NonZero::new(1u32)?;
let two = NonZero::new(2u32)?;
let max = NonZero::new(u32::MAX)?;

assert_eq!(two, one.saturating_add(1));
assert_eq!(max, max.saturating_add(1));
Source

pub const unsafe fn unchecked_add(self, other: u32) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Adds an unsigned integer to a non-zero value, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self + rhs > u32::MAX.

ยงExamples
#![feature(nonzero_ops)]

let one = NonZero::new(1u32)?;
let two = NonZero::new(2u32)?;

assert_eq!(two, unsafe { one.unchecked_add(1) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_next_power_of_two(self) -> Option<NonZero<u32>>

Returns the smallest power of two greater than or equal to self. Checks for overflow and returns None if the next power of two is greater than the typeโ€™s maximum value. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u32)?;
let three = NonZero::new(3u32)?;
let four = NonZero::new(4u32)?;
let max = NonZero::new(u32::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() );
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

This is the same operation as u32::ilog2, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(7u32)?.ilog2(), 2);
assert_eq!(NonZero::new(8u32)?.ilog2(), 3);
assert_eq!(NonZero::new(9u32)?.ilog2(), 3);
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

This is the same operation as u32::ilog10, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(99u32)?.ilog10(), 1);
assert_eq!(NonZero::new(100u32)?.ilog10(), 2);
assert_eq!(NonZero::new(101u32)?.ilog10(), 2);
1.85.0 (const: 1.85.0) ยท Source

pub const fn midpoint(self, rhs: NonZero<u32>) -> NonZero<u32>

Calculates the midpoint (average) between self and rhs.

midpoint(a, b) is (a + b) >> 1 as if it were performed in a sufficiently-large signed integral type. This implies that the result is always rounded towards negative infinity and that no overflow will ever occur.

ยงExamples
let one = NonZero::new(1u32)?;
let two = NonZero::new(2u32)?;
let four = NonZero::new(4u32)?;

assert_eq!(one.midpoint(four), two);
assert_eq!(four.midpoint(one), two);
1.59.0 (const: 1.59.0) ยท Source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == (1 << k) for some k.

On many architectures, this function can perform better than is_power_of_two() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let eight = NonZero::new(8u32)?;
assert!(eight.is_power_of_two());
let ten = NonZero::new(10u32)?;
assert!(!ten.is_power_of_two());
1.84.0 (const: 1.84.0) ยท Source

pub const fn isqrt(self) -> NonZero<u32>

Returns the square root of the number, rounded down.

ยงExamples

Basic usage:

let ten = NonZero::new(10u32)?;
let three = NonZero::new(3u32)?;

assert_eq!(ten.isqrt(), three);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_signed(self) -> NonZero<i32>

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::<u32>::MAX;

assert_eq!(n.cast_signed(), NonZero::new(-1i32).unwrap());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<u32>) -> Option<NonZero<u32>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u32)?;
let four = NonZero::new(4u32)?;
let max = NonZero::new(u32::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<u32>) -> NonZero<u32>

Multiplies two non-zero integers together. Return NonZero::<u32>::MAX on overflow.

ยงExamples
let two = NonZero::new(2u32)?;
let four = NonZero::new(4u32)?;
let max = NonZero::new(u32::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<u32>) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > u32::MAX.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2u32)?;
let four = NonZero::new(4u32)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<u32>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3u32)?;
let twenty_seven = NonZero::new(27u32)?;
let half_max = NonZero::new(u32::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<u32>

Raise non-zero value to an integer power. Return NonZero::<u32>::MAX on overflow.

ยงExamples
let three = NonZero::new(3u32)?;
let twenty_seven = NonZero::new(27u32)?;
let max = NonZero::new(u32::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<u32>

Source

pub const fn div_ceil(self, rhs: NonZero<u32>) -> NonZero<u32>

๐Ÿ”ฌThis is a nightly-only experimental API. (unsigned_nonzero_div_ceil)

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

The result is guaranteed to be non-zero.

ยงExamples
let one = NonZero::new(1u32).unwrap();
let max = NonZero::new(u32::MAX).unwrap();
assert_eq!(one.div_ceil(max), one);

let two = NonZero::new(2u32).unwrap();
let three = NonZero::new(3u32).unwrap();
assert_eq!(three.div_ceil(two), two);
Sourceยง

impl NonZero<u64>

1.67.0 ยท Source

pub const BITS: u32 = 64u32

The size of this non-zero integer type in bits.

This value is equal to u64::BITS.

ยงExamples
assert_eq!(NonZero::<u64>::BITS, u64::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<u64>

The smallest value that can be represented by this non-zero integer type, 1.

ยงExamples
assert_eq!(NonZero::<u64>::MIN.get(), 1u64);
1.70.0 ยท Source

pub const MAX: NonZero<u64>

The largest value that can be represented by this non-zero integer type, equal to u64::MAX.

ยงExamples
assert_eq!(NonZero::<u64>::MAX.get(), u64::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u64>::new(u64::MAX)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u64>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u64>::new(0b_01100100)?;
let b = NonZero::<u64>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u64>::new(0b_01100100)?;
let b = NonZero::<u64>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<u64>::new(0b100_0000)?;
let b = NonZero::<u64>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xaa00000000006e1u64)?;
let m = NonZero::new(0x6e10aa)?;

assert_eq!(n.rotate_left(12), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x6e10aau64)?;
let m = NonZero::new(0xaa00000000006e1)?;

assert_eq!(n.rotate_right(12), m);
Source

pub const fn swap_bytes(self) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234567890123456u64)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x5634129078563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234567890123456u64)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x6a2c48091e6a2c48)?);
Source

pub const fn from_be(x: NonZero<u64>) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU64;
let n = NonZero::new(0x1Au64)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroU64::from_be(n), n)
} else {
    assert_eq!(NonZeroU64::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<u64>) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU64;
let n = NonZero::new(0x1Au64)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroU64::from_le(n), n)
} else {
    assert_eq!(NonZeroU64::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au64)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au64)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_add(self, other: u64) -> Option<NonZero<u64>>

Adds an unsigned integer to a non-zero value. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let one = NonZero::new(1u64)?;
let two = NonZero::new(2u64)?;
let max = NonZero::new(u64::MAX)?;

assert_eq!(Some(two), one.checked_add(1));
assert_eq!(None, max.checked_add(1));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_add(self, other: u64) -> NonZero<u64>

Adds an unsigned integer to a non-zero value. Return NonZero::<u64>::MAX on overflow.

ยงExamples
let one = NonZero::new(1u64)?;
let two = NonZero::new(2u64)?;
let max = NonZero::new(u64::MAX)?;

assert_eq!(two, one.saturating_add(1));
assert_eq!(max, max.saturating_add(1));
Source

pub const unsafe fn unchecked_add(self, other: u64) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Adds an unsigned integer to a non-zero value, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self + rhs > u64::MAX.

ยงExamples
#![feature(nonzero_ops)]

let one = NonZero::new(1u64)?;
let two = NonZero::new(2u64)?;

assert_eq!(two, unsafe { one.unchecked_add(1) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_next_power_of_two(self) -> Option<NonZero<u64>>

Returns the smallest power of two greater than or equal to self. Checks for overflow and returns None if the next power of two is greater than the typeโ€™s maximum value. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u64)?;
let three = NonZero::new(3u64)?;
let four = NonZero::new(4u64)?;
let max = NonZero::new(u64::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() );
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

This is the same operation as u64::ilog2, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(7u64)?.ilog2(), 2);
assert_eq!(NonZero::new(8u64)?.ilog2(), 3);
assert_eq!(NonZero::new(9u64)?.ilog2(), 3);
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

This is the same operation as u64::ilog10, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(99u64)?.ilog10(), 1);
assert_eq!(NonZero::new(100u64)?.ilog10(), 2);
assert_eq!(NonZero::new(101u64)?.ilog10(), 2);
1.85.0 (const: 1.85.0) ยท Source

pub const fn midpoint(self, rhs: NonZero<u64>) -> NonZero<u64>

Calculates the midpoint (average) between self and rhs.

midpoint(a, b) is (a + b) >> 1 as if it were performed in a sufficiently-large signed integral type. This implies that the result is always rounded towards negative infinity and that no overflow will ever occur.

ยงExamples
let one = NonZero::new(1u64)?;
let two = NonZero::new(2u64)?;
let four = NonZero::new(4u64)?;

assert_eq!(one.midpoint(four), two);
assert_eq!(four.midpoint(one), two);
1.59.0 (const: 1.59.0) ยท Source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == (1 << k) for some k.

On many architectures, this function can perform better than is_power_of_two() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let eight = NonZero::new(8u64)?;
assert!(eight.is_power_of_two());
let ten = NonZero::new(10u64)?;
assert!(!ten.is_power_of_two());
1.84.0 (const: 1.84.0) ยท Source

pub const fn isqrt(self) -> NonZero<u64>

Returns the square root of the number, rounded down.

ยงExamples

Basic usage:

let ten = NonZero::new(10u64)?;
let three = NonZero::new(3u64)?;

assert_eq!(ten.isqrt(), three);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_signed(self) -> NonZero<i64>

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::<u64>::MAX;

assert_eq!(n.cast_signed(), NonZero::new(-1i64).unwrap());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<u64>) -> Option<NonZero<u64>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u64)?;
let four = NonZero::new(4u64)?;
let max = NonZero::new(u64::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<u64>) -> NonZero<u64>

Multiplies two non-zero integers together. Return NonZero::<u64>::MAX on overflow.

ยงExamples
let two = NonZero::new(2u64)?;
let four = NonZero::new(4u64)?;
let max = NonZero::new(u64::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<u64>) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > u64::MAX.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2u64)?;
let four = NonZero::new(4u64)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<u64>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3u64)?;
let twenty_seven = NonZero::new(27u64)?;
let half_max = NonZero::new(u64::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<u64>

Raise non-zero value to an integer power. Return NonZero::<u64>::MAX on overflow.

ยงExamples
let three = NonZero::new(3u64)?;
let twenty_seven = NonZero::new(27u64)?;
let max = NonZero::new(u64::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<u64>

Source

pub const fn div_ceil(self, rhs: NonZero<u64>) -> NonZero<u64>

๐Ÿ”ฌThis is a nightly-only experimental API. (unsigned_nonzero_div_ceil)

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

The result is guaranteed to be non-zero.

ยงExamples
let one = NonZero::new(1u64).unwrap();
let max = NonZero::new(u64::MAX).unwrap();
assert_eq!(one.div_ceil(max), one);

let two = NonZero::new(2u64).unwrap();
let three = NonZero::new(3u64).unwrap();
assert_eq!(three.div_ceil(two), two);
Sourceยง

impl NonZero<u128>

1.67.0 ยท Source

pub const BITS: u32 = 128u32

The size of this non-zero integer type in bits.

This value is equal to u128::BITS.

ยงExamples
assert_eq!(NonZero::<u128>::BITS, u128::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<u128>

The smallest value that can be represented by this non-zero integer type, 1.

ยงExamples
assert_eq!(NonZero::<u128>::MIN.get(), 1u128);
1.70.0 ยท Source

pub const MAX: NonZero<u128>

The largest value that can be represented by this non-zero integer type, equal to u128::MAX.

ยงExamples
assert_eq!(NonZero::<u128>::MAX.get(), u128::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u128>::new(u128::MAX)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<u128>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u128>::new(0b_01100100)?;
let b = NonZero::<u128>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<u128>::new(0b_01100100)?;
let b = NonZero::<u128>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<u128>::new(0b100_0000)?;
let b = NonZero::<u128>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x13f40000000000000000000000004f76u128)?;
let m = NonZero::new(0x4f7613f4)?;

assert_eq!(n.rotate_left(16), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x4f7613f4u128)?;
let m = NonZero::new(0x13f40000000000000000000000004f76)?;

assert_eq!(n.rotate_right(16), m);
Source

pub const fn swap_bytes(self) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678901234567890123456789012u128)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x12907856341290785634129078563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678901234567890123456789012u128)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x48091e6a2c48091e6a2c48091e6a2c48)?);
Source

pub const fn from_be(x: NonZero<u128>) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU128;
let n = NonZero::new(0x1Au128)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroU128::from_be(n), n)
} else {
    assert_eq!(NonZeroU128::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<u128>) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroU128;
let n = NonZero::new(0x1Au128)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroU128::from_le(n), n)
} else {
    assert_eq!(NonZeroU128::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au128)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Au128)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_add(self, other: u128) -> Option<NonZero<u128>>

Adds an unsigned integer to a non-zero value. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let one = NonZero::new(1u128)?;
let two = NonZero::new(2u128)?;
let max = NonZero::new(u128::MAX)?;

assert_eq!(Some(two), one.checked_add(1));
assert_eq!(None, max.checked_add(1));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_add(self, other: u128) -> NonZero<u128>

Adds an unsigned integer to a non-zero value. Return NonZero::<u128>::MAX on overflow.

ยงExamples
let one = NonZero::new(1u128)?;
let two = NonZero::new(2u128)?;
let max = NonZero::new(u128::MAX)?;

assert_eq!(two, one.saturating_add(1));
assert_eq!(max, max.saturating_add(1));
Source

pub const unsafe fn unchecked_add(self, other: u128) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Adds an unsigned integer to a non-zero value, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self + rhs > u128::MAX.

ยงExamples
#![feature(nonzero_ops)]

let one = NonZero::new(1u128)?;
let two = NonZero::new(2u128)?;

assert_eq!(two, unsafe { one.unchecked_add(1) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_next_power_of_two(self) -> Option<NonZero<u128>>

Returns the smallest power of two greater than or equal to self. Checks for overflow and returns None if the next power of two is greater than the typeโ€™s maximum value. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u128)?;
let three = NonZero::new(3u128)?;
let four = NonZero::new(4u128)?;
let max = NonZero::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() );
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

This is the same operation as u128::ilog2, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(7u128)?.ilog2(), 2);
assert_eq!(NonZero::new(8u128)?.ilog2(), 3);
assert_eq!(NonZero::new(9u128)?.ilog2(), 3);
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

This is the same operation as u128::ilog10, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(99u128)?.ilog10(), 1);
assert_eq!(NonZero::new(100u128)?.ilog10(), 2);
assert_eq!(NonZero::new(101u128)?.ilog10(), 2);
1.85.0 (const: 1.85.0) ยท Source

pub const fn midpoint(self, rhs: NonZero<u128>) -> NonZero<u128>

Calculates the midpoint (average) between self and rhs.

midpoint(a, b) is (a + b) >> 1 as if it were performed in a sufficiently-large signed integral type. This implies that the result is always rounded towards negative infinity and that no overflow will ever occur.

ยงExamples
let one = NonZero::new(1u128)?;
let two = NonZero::new(2u128)?;
let four = NonZero::new(4u128)?;

assert_eq!(one.midpoint(four), two);
assert_eq!(four.midpoint(one), two);
1.59.0 (const: 1.59.0) ยท Source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == (1 << k) for some k.

On many architectures, this function can perform better than is_power_of_two() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let eight = NonZero::new(8u128)?;
assert!(eight.is_power_of_two());
let ten = NonZero::new(10u128)?;
assert!(!ten.is_power_of_two());
1.84.0 (const: 1.84.0) ยท Source

pub const fn isqrt(self) -> NonZero<u128>

Returns the square root of the number, rounded down.

ยงExamples

Basic usage:

let ten = NonZero::new(10u128)?;
let three = NonZero::new(3u128)?;

assert_eq!(ten.isqrt(), three);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_signed(self) -> NonZero<i128>

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::<u128>::MAX;

assert_eq!(n.cast_signed(), NonZero::new(-1i128).unwrap());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<u128>) -> Option<NonZero<u128>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2u128)?;
let four = NonZero::new(4u128)?;
let max = NonZero::new(u128::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<u128>) -> NonZero<u128>

Multiplies two non-zero integers together. Return NonZero::<u128>::MAX on overflow.

ยงExamples
let two = NonZero::new(2u128)?;
let four = NonZero::new(4u128)?;
let max = NonZero::new(u128::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<u128>) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > u128::MAX.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2u128)?;
let four = NonZero::new(4u128)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<u128>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3u128)?;
let twenty_seven = NonZero::new(27u128)?;
let half_max = NonZero::new(u128::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<u128>

Raise non-zero value to an integer power. Return NonZero::<u128>::MAX on overflow.

ยงExamples
let three = NonZero::new(3u128)?;
let twenty_seven = NonZero::new(27u128)?;
let max = NonZero::new(u128::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<u128>

Source

pub const fn div_ceil(self, rhs: NonZero<u128>) -> NonZero<u128>

๐Ÿ”ฌThis is a nightly-only experimental API. (unsigned_nonzero_div_ceil)

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

The result is guaranteed to be non-zero.

ยงExamples
let one = NonZero::new(1u128).unwrap();
let max = NonZero::new(u128::MAX).unwrap();
assert_eq!(one.div_ceil(max), one);

let two = NonZero::new(2u128).unwrap();
let three = NonZero::new(3u128).unwrap();
assert_eq!(three.div_ceil(two), two);
Sourceยง

impl NonZero<usize>

1.67.0 ยท Source

pub const BITS: u32 = 32u32

The size of this non-zero integer type in bits.

This value is equal to usize::BITS.

ยงExamples
assert_eq!(NonZero::<usize>::BITS, usize::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<usize>

The smallest value that can be represented by this non-zero integer type, 1.

ยงExamples
assert_eq!(NonZero::<usize>::MIN.get(), 1usize);
1.70.0 ยท Source

pub const MAX: NonZero<usize>

The largest value that can be represented by this non-zero integer type, equal to usize::MAX.

ยงExamples
assert_eq!(NonZero::<usize>::MAX.get(), usize::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<usize>::new(usize::MAX)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<usize>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<usize>::new(0b_01100100)?;
let b = NonZero::<usize>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<usize>::new(0b_01100100)?;
let b = NonZero::<usize>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<usize>::new(0b100_0000)?;
let b = NonZero::<usize>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x10000b3usize)?;
let m = NonZero::new(0xb301)?;

assert_eq!(n.rotate_left(8), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xb301usize)?;
let m = NonZero::new(0x10000b3)?;

assert_eq!(n.rotate_right(8), m);
Source

pub const fn swap_bytes(self) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678usize)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x78563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678usize)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x1e6a2c48)?);
Source

pub const fn from_be(x: NonZero<usize>) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroUsize;
let n = NonZero::new(0x1Ausize)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroUsize::from_be(n), n)
} else {
    assert_eq!(NonZeroUsize::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<usize>) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroUsize;
let n = NonZero::new(0x1Ausize)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroUsize::from_le(n), n)
} else {
    assert_eq!(NonZeroUsize::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ausize)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ausize)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_add(self, other: usize) -> Option<NonZero<usize>>

Adds an unsigned integer to a non-zero value. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let one = NonZero::new(1usize)?;
let two = NonZero::new(2usize)?;
let max = NonZero::new(usize::MAX)?;

assert_eq!(Some(two), one.checked_add(1));
assert_eq!(None, max.checked_add(1));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_add(self, other: usize) -> NonZero<usize>

Adds an unsigned integer to a non-zero value. Return NonZero::<usize>::MAX on overflow.

ยงExamples
let one = NonZero::new(1usize)?;
let two = NonZero::new(2usize)?;
let max = NonZero::new(usize::MAX)?;

assert_eq!(two, one.saturating_add(1));
assert_eq!(max, max.saturating_add(1));
Source

pub const unsafe fn unchecked_add(self, other: usize) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Adds an unsigned integer to a non-zero value, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self + rhs > usize::MAX.

ยงExamples
#![feature(nonzero_ops)]

let one = NonZero::new(1usize)?;
let two = NonZero::new(2usize)?;

assert_eq!(two, unsafe { one.unchecked_add(1) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_next_power_of_two(self) -> Option<NonZero<usize>>

Returns the smallest power of two greater than or equal to self. Checks for overflow and returns None if the next power of two is greater than the typeโ€™s maximum value. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2usize)?;
let three = NonZero::new(3usize)?;
let four = NonZero::new(4usize)?;
let max = NonZero::new(usize::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() );
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog2(self) -> u32

Returns the base 2 logarithm of the number, rounded down.

This is the same operation as usize::ilog2, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(7usize)?.ilog2(), 2);
assert_eq!(NonZero::new(8usize)?.ilog2(), 3);
assert_eq!(NonZero::new(9usize)?.ilog2(), 3);
1.67.0 (const: 1.67.0) ยท Source

pub const fn ilog10(self) -> u32

Returns the base 10 logarithm of the number, rounded down.

This is the same operation as usize::ilog10, except that it has no failure cases to worry about since this value can never be zero.

ยงExamples
assert_eq!(NonZero::new(99usize)?.ilog10(), 1);
assert_eq!(NonZero::new(100usize)?.ilog10(), 2);
assert_eq!(NonZero::new(101usize)?.ilog10(), 2);
1.85.0 (const: 1.85.0) ยท Source

pub const fn midpoint(self, rhs: NonZero<usize>) -> NonZero<usize>

Calculates the midpoint (average) between self and rhs.

midpoint(a, b) is (a + b) >> 1 as if it were performed in a sufficiently-large signed integral type. This implies that the result is always rounded towards negative infinity and that no overflow will ever occur.

ยงExamples
let one = NonZero::new(1usize)?;
let two = NonZero::new(2usize)?;
let four = NonZero::new(4usize)?;

assert_eq!(one.midpoint(four), two);
assert_eq!(four.midpoint(one), two);
1.59.0 (const: 1.59.0) ยท Source

pub const fn is_power_of_two(self) -> bool

Returns true if and only if self == (1 << k) for some k.

On many architectures, this function can perform better than is_power_of_two() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let eight = NonZero::new(8usize)?;
assert!(eight.is_power_of_two());
let ten = NonZero::new(10usize)?;
assert!(!ten.is_power_of_two());
1.84.0 (const: 1.84.0) ยท Source

pub const fn isqrt(self) -> NonZero<usize>

Returns the square root of the number, rounded down.

ยงExamples

Basic usage:

let ten = NonZero::new(10usize)?;
let three = NonZero::new(3usize)?;

assert_eq!(ten.isqrt(), three);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_signed(self) -> NonZero<isize>

Returns the bit pattern of self reinterpreted as a signed integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::<usize>::MAX;

assert_eq!(n.cast_signed(), NonZero::new(-1isize).unwrap());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<usize>) -> Option<NonZero<usize>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2usize)?;
let four = NonZero::new(4usize)?;
let max = NonZero::new(usize::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<usize>) -> NonZero<usize>

Multiplies two non-zero integers together. Return NonZero::<usize>::MAX on overflow.

ยงExamples
let two = NonZero::new(2usize)?;
let four = NonZero::new(4usize)?;
let max = NonZero::new(usize::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<usize>) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > usize::MAX.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2usize)?;
let four = NonZero::new(4usize)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<usize>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3usize)?;
let twenty_seven = NonZero::new(27usize)?;
let half_max = NonZero::new(usize::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<usize>

Raise non-zero value to an integer power. Return NonZero::<usize>::MAX on overflow.

ยงExamples
let three = NonZero::new(3usize)?;
let twenty_seven = NonZero::new(27usize)?;
let max = NonZero::new(usize::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<usize>

Source

pub const fn div_ceil(self, rhs: NonZero<usize>) -> NonZero<usize>

๐Ÿ”ฌThis is a nightly-only experimental API. (unsigned_nonzero_div_ceil)

Calculates the quotient of self and rhs, rounding the result towards positive infinity.

The result is guaranteed to be non-zero.

ยงExamples
let one = NonZero::new(1usize).unwrap();
let max = NonZero::new(usize::MAX).unwrap();
assert_eq!(one.div_ceil(max), one);

let two = NonZero::new(2usize).unwrap();
let three = NonZero::new(3usize).unwrap();
assert_eq!(three.div_ceil(two), two);
Sourceยง

impl NonZero<i8>

1.67.0 ยท Source

pub const BITS: u32 = 8u32

The size of this non-zero integer type in bits.

This value is equal to i8::BITS.

ยงExamples
assert_eq!(NonZero::<i8>::BITS, i8::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<i8>

The smallest value that can be represented by this non-zero integer type, equal to i8::MIN.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i8>::MIN.get(), i8::MIN);
1.70.0 ยท Source

pub const MAX: NonZero<i8>

The largest value that can be represented by this non-zero integer type, equal to i8::MAX.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i8>::MAX.get(), i8::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i8>::new(-1i8)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i8>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i8>::new(0b_01100100)?;
let b = NonZero::<i8>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i8>::new(0b_01100100)?;
let b = NonZero::<i8>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<i8>::new(0b100_0000)?;
let b = NonZero::<i8>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(-0x7ei8)?;
let m = NonZero::new(0xa)?;

assert_eq!(n.rotate_left(2), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xai8)?;
let m = NonZero::new(-0x7e)?;

assert_eq!(n.rotate_right(2), m);
Source

pub const fn swap_bytes(self) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12i8)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x12)?);
Source

pub const fn reverse_bits(self) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12i8)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x48)?);
Source

pub const fn from_be(x: NonZero<i8>) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI8;
let n = NonZero::new(0x1Ai8)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroI8::from_be(n), n)
} else {
    assert_eq!(NonZeroI8::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<i8>) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI8;
let n = NonZero::new(0x1Ai8)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroI8::from_le(n), n)
} else {
    assert_eq!(NonZeroI8::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai8)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai8)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn abs(self) -> NonZero<i8>

Computes the absolute value of self. See i8::abs for documentation on overflow behavior.

ยงExample
let pos = NonZero::new(1i8)?;
let neg = NonZero::new(-1i8)?;

assert_eq!(pos, pos.abs());
assert_eq!(pos, neg.abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_abs(self) -> Option<NonZero<i8>>

Checked absolute value. Checks for overflow and returns None if self == NonZero::<i8>::MIN. The result cannot be zero.

ยงExample
let pos = NonZero::new(1i8)?;
let neg = NonZero::new(-1i8)?;
let min = NonZero::new(i8::MIN)?;

assert_eq!(Some(pos), neg.checked_abs());
assert_eq!(None, min.checked_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn overflowing_abs(self) -> (NonZero<i8>, bool)

Computes the absolute value of self, with overflow information, see i8::overflowing_abs.

ยงExample
let pos = NonZero::new(1i8)?;
let neg = NonZero::new(-1i8)?;
let min = NonZero::new(i8::MIN)?;

assert_eq!((pos, false), pos.overflowing_abs());
assert_eq!((pos, false), neg.overflowing_abs());
assert_eq!((min, true), min.overflowing_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_abs(self) -> NonZero<i8>

Saturating absolute value, see i8::saturating_abs.

ยงExample
let pos = NonZero::new(1i8)?;
let neg = NonZero::new(-1i8)?;
let min = NonZero::new(i8::MIN)?;
let min_plus = NonZero::new(i8::MIN + 1)?;
let max = NonZero::new(i8::MAX)?;

assert_eq!(pos, pos.saturating_abs());
assert_eq!(pos, neg.saturating_abs());
assert_eq!(max, min.saturating_abs());
assert_eq!(max, min_plus.saturating_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn wrapping_abs(self) -> NonZero<i8>

Wrapping absolute value, see i8::wrapping_abs.

ยงExample
let pos = NonZero::new(1i8)?;
let neg = NonZero::new(-1i8)?;
let min = NonZero::new(i8::MIN)?;

assert_eq!(pos, pos.wrapping_abs());
assert_eq!(pos, neg.wrapping_abs());
assert_eq!(min, min.wrapping_abs());
assert_eq!(max, (-max).wrapping_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn unsigned_abs(self) -> NonZero<u8>

Computes the absolute value of self without any wrapping or panicking.

ยงExample
let u_pos = NonZero::new(1u8)?;
let i_pos = NonZero::new(1i8)?;
let i_neg = NonZero::new(-1i8)?;
let i_min = NonZero::new(i8::MIN)?;
let u_max = NonZero::new(u8::MAX / 2 + 1)?;

assert_eq!(u_pos, i_pos.unsigned_abs());
assert_eq!(u_pos, i_neg.unsigned_abs());
assert_eq!(u_max, i_min.unsigned_abs());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_positive(self) -> bool

Returns true if self is positive and false if the number is negative.

ยงExample
let pos_five = NonZero::new(5i8)?;
let neg_five = NonZero::new(-5i8)?;

assert!(pos_five.is_positive());
assert!(!neg_five.is_positive());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_negative(self) -> bool

Returns true if self is negative and false if the number is positive.

ยงExample
let pos_five = NonZero::new(5i8)?;
let neg_five = NonZero::new(-5i8)?;

assert!(neg_five.is_negative());
assert!(!pos_five.is_negative());
1.71.0 (const: 1.71.0) ยท Source

pub const fn checked_neg(self) -> Option<NonZero<i8>>

Checked negation. Computes -self, returning None if self == NonZero::<i8>::MIN.

ยงExample
let pos_five = NonZero::new(5i8)?;
let neg_five = NonZero::new(-5i8)?;
let min = NonZero::new(i8::MIN)?;

assert_eq!(pos_five.checked_neg(), Some(neg_five));
assert_eq!(min.checked_neg(), None);
1.71.0 (const: 1.71.0) ยท Source

pub const fn overflowing_neg(self) -> (NonZero<i8>, bool)

Negates self, overflowing if this is equal to the minimum value.

See i8::overflowing_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i8)?;
let neg_five = NonZero::new(-5i8)?;
let min = NonZero::new(i8::MIN)?;

assert_eq!(pos_five.overflowing_neg(), (neg_five, false));
assert_eq!(min.overflowing_neg(), (min, true));
1.71.0 (const: 1.71.0) ยท Source

pub const fn saturating_neg(self) -> NonZero<i8>

Saturating negation. Computes -self, returning NonZero::<i8>::MAX if self == NonZero::<i8>::MIN instead of overflowing.

ยงExample
let pos_five = NonZero::new(5i8)?;
let neg_five = NonZero::new(-5i8)?;
let min = NonZero::new(i8::MIN)?;
let min_plus_one = NonZero::new(i8::MIN + 1)?;
let max = NonZero::new(i8::MAX)?;

assert_eq!(pos_five.saturating_neg(), neg_five);
assert_eq!(min.saturating_neg(), max);
assert_eq!(max.saturating_neg(), min_plus_one);
1.71.0 (const: 1.71.0) ยท Source

pub const fn wrapping_neg(self) -> NonZero<i8>

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type.

See i8::wrapping_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i8)?;
let neg_five = NonZero::new(-5i8)?;
let min = NonZero::new(i8::MIN)?;

assert_eq!(pos_five.wrapping_neg(), neg_five);
assert_eq!(min.wrapping_neg(), min);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_unsigned(self) -> NonZero<u8>

Returns the bit pattern of self reinterpreted as an unsigned integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::new(-1i8).unwrap();

assert_eq!(n.cast_unsigned(), NonZero::<u8>::MAX);
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<i8>) -> Option<NonZero<i8>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2i8)?;
let four = NonZero::new(4i8)?;
let max = NonZero::new(i8::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<i8>) -> NonZero<i8>

Multiplies two non-zero integers together. Return NonZero::<i8>::MAX on overflow.

ยงExamples
let two = NonZero::new(2i8)?;
let four = NonZero::new(4i8)?;
let max = NonZero::new(i8::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<i8>) -> NonZero<i8>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > i8::MAX, or self * rhs < i8::MIN.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2i8)?;
let four = NonZero::new(4i8)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<i8>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3i8)?;
let twenty_seven = NonZero::new(27i8)?;
let half_max = NonZero::new(i8::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<i8>

Raise non-zero value to an integer power. Return NonZero::<i8>::MIN or NonZero::<i8>::MAX on overflow.

ยงExamples
let three = NonZero::new(3i8)?;
let twenty_seven = NonZero::new(27i8)?;
let max = NonZero::new(i8::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<i16>

1.67.0 ยท Source

pub const BITS: u32 = 16u32

The size of this non-zero integer type in bits.

This value is equal to i16::BITS.

ยงExamples
assert_eq!(NonZero::<i16>::BITS, i16::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<i16>

The smallest value that can be represented by this non-zero integer type, equal to i16::MIN.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i16>::MIN.get(), i16::MIN);
1.70.0 ยท Source

pub const MAX: NonZero<i16>

The largest value that can be represented by this non-zero integer type, equal to i16::MAX.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i16>::MAX.get(), i16::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i16>::new(-1i16)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i16>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i16>::new(0b_01100100)?;
let b = NonZero::<i16>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i16>::new(0b_01100100)?;
let b = NonZero::<i16>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<i16>::new(0b100_0000)?;
let b = NonZero::<i16>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(-0x5ffdi16)?;
let m = NonZero::new(0x3a)?;

assert_eq!(n.rotate_left(4), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x3ai16)?;
let m = NonZero::new(-0x5ffd)?;

assert_eq!(n.rotate_right(4), m);
Source

pub const fn swap_bytes(self) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234i16)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x3412)?);
Source

pub const fn reverse_bits(self) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234i16)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x2c48)?);
Source

pub const fn from_be(x: NonZero<i16>) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI16;
let n = NonZero::new(0x1Ai16)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroI16::from_be(n), n)
} else {
    assert_eq!(NonZeroI16::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<i16>) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI16;
let n = NonZero::new(0x1Ai16)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroI16::from_le(n), n)
} else {
    assert_eq!(NonZeroI16::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai16)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai16)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn abs(self) -> NonZero<i16>

Computes the absolute value of self. See i16::abs for documentation on overflow behavior.

ยงExample
let pos = NonZero::new(1i16)?;
let neg = NonZero::new(-1i16)?;

assert_eq!(pos, pos.abs());
assert_eq!(pos, neg.abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_abs(self) -> Option<NonZero<i16>>

Checked absolute value. Checks for overflow and returns None if self == NonZero::<i16>::MIN. The result cannot be zero.

ยงExample
let pos = NonZero::new(1i16)?;
let neg = NonZero::new(-1i16)?;
let min = NonZero::new(i16::MIN)?;

assert_eq!(Some(pos), neg.checked_abs());
assert_eq!(None, min.checked_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn overflowing_abs(self) -> (NonZero<i16>, bool)

Computes the absolute value of self, with overflow information, see i16::overflowing_abs.

ยงExample
let pos = NonZero::new(1i16)?;
let neg = NonZero::new(-1i16)?;
let min = NonZero::new(i16::MIN)?;

assert_eq!((pos, false), pos.overflowing_abs());
assert_eq!((pos, false), neg.overflowing_abs());
assert_eq!((min, true), min.overflowing_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_abs(self) -> NonZero<i16>

Saturating absolute value, see i16::saturating_abs.

ยงExample
let pos = NonZero::new(1i16)?;
let neg = NonZero::new(-1i16)?;
let min = NonZero::new(i16::MIN)?;
let min_plus = NonZero::new(i16::MIN + 1)?;
let max = NonZero::new(i16::MAX)?;

assert_eq!(pos, pos.saturating_abs());
assert_eq!(pos, neg.saturating_abs());
assert_eq!(max, min.saturating_abs());
assert_eq!(max, min_plus.saturating_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn wrapping_abs(self) -> NonZero<i16>

Wrapping absolute value, see i16::wrapping_abs.

ยงExample
let pos = NonZero::new(1i16)?;
let neg = NonZero::new(-1i16)?;
let min = NonZero::new(i16::MIN)?;

assert_eq!(pos, pos.wrapping_abs());
assert_eq!(pos, neg.wrapping_abs());
assert_eq!(min, min.wrapping_abs());
assert_eq!(max, (-max).wrapping_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn unsigned_abs(self) -> NonZero<u16>

Computes the absolute value of self without any wrapping or panicking.

ยงExample
let u_pos = NonZero::new(1u16)?;
let i_pos = NonZero::new(1i16)?;
let i_neg = NonZero::new(-1i16)?;
let i_min = NonZero::new(i16::MIN)?;
let u_max = NonZero::new(u16::MAX / 2 + 1)?;

assert_eq!(u_pos, i_pos.unsigned_abs());
assert_eq!(u_pos, i_neg.unsigned_abs());
assert_eq!(u_max, i_min.unsigned_abs());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_positive(self) -> bool

Returns true if self is positive and false if the number is negative.

ยงExample
let pos_five = NonZero::new(5i16)?;
let neg_five = NonZero::new(-5i16)?;

assert!(pos_five.is_positive());
assert!(!neg_five.is_positive());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_negative(self) -> bool

Returns true if self is negative and false if the number is positive.

ยงExample
let pos_five = NonZero::new(5i16)?;
let neg_five = NonZero::new(-5i16)?;

assert!(neg_five.is_negative());
assert!(!pos_five.is_negative());
1.71.0 (const: 1.71.0) ยท Source

pub const fn checked_neg(self) -> Option<NonZero<i16>>

Checked negation. Computes -self, returning None if self == NonZero::<i16>::MIN.

ยงExample
let pos_five = NonZero::new(5i16)?;
let neg_five = NonZero::new(-5i16)?;
let min = NonZero::new(i16::MIN)?;

assert_eq!(pos_five.checked_neg(), Some(neg_five));
assert_eq!(min.checked_neg(), None);
1.71.0 (const: 1.71.0) ยท Source

pub const fn overflowing_neg(self) -> (NonZero<i16>, bool)

Negates self, overflowing if this is equal to the minimum value.

See i16::overflowing_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i16)?;
let neg_five = NonZero::new(-5i16)?;
let min = NonZero::new(i16::MIN)?;

assert_eq!(pos_five.overflowing_neg(), (neg_five, false));
assert_eq!(min.overflowing_neg(), (min, true));
1.71.0 (const: 1.71.0) ยท Source

pub const fn saturating_neg(self) -> NonZero<i16>

Saturating negation. Computes -self, returning NonZero::<i16>::MAX if self == NonZero::<i16>::MIN instead of overflowing.

ยงExample
let pos_five = NonZero::new(5i16)?;
let neg_five = NonZero::new(-5i16)?;
let min = NonZero::new(i16::MIN)?;
let min_plus_one = NonZero::new(i16::MIN + 1)?;
let max = NonZero::new(i16::MAX)?;

assert_eq!(pos_five.saturating_neg(), neg_five);
assert_eq!(min.saturating_neg(), max);
assert_eq!(max.saturating_neg(), min_plus_one);
1.71.0 (const: 1.71.0) ยท Source

pub const fn wrapping_neg(self) -> NonZero<i16>

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type.

See i16::wrapping_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i16)?;
let neg_five = NonZero::new(-5i16)?;
let min = NonZero::new(i16::MIN)?;

assert_eq!(pos_five.wrapping_neg(), neg_five);
assert_eq!(min.wrapping_neg(), min);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_unsigned(self) -> NonZero<u16>

Returns the bit pattern of self reinterpreted as an unsigned integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::new(-1i16).unwrap();

assert_eq!(n.cast_unsigned(), NonZero::<u16>::MAX);
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<i16>) -> Option<NonZero<i16>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2i16)?;
let four = NonZero::new(4i16)?;
let max = NonZero::new(i16::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<i16>) -> NonZero<i16>

Multiplies two non-zero integers together. Return NonZero::<i16>::MAX on overflow.

ยงExamples
let two = NonZero::new(2i16)?;
let four = NonZero::new(4i16)?;
let max = NonZero::new(i16::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<i16>) -> NonZero<i16>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > i16::MAX, or self * rhs < i16::MIN.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2i16)?;
let four = NonZero::new(4i16)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<i16>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3i16)?;
let twenty_seven = NonZero::new(27i16)?;
let half_max = NonZero::new(i16::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<i16>

Raise non-zero value to an integer power. Return NonZero::<i16>::MIN or NonZero::<i16>::MAX on overflow.

ยงExamples
let three = NonZero::new(3i16)?;
let twenty_seven = NonZero::new(27i16)?;
let max = NonZero::new(i16::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<i32>

1.67.0 ยท Source

pub const BITS: u32 = 32u32

The size of this non-zero integer type in bits.

This value is equal to i32::BITS.

ยงExamples
assert_eq!(NonZero::<i32>::BITS, i32::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<i32>

The smallest value that can be represented by this non-zero integer type, equal to i32::MIN.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i32>::MIN.get(), i32::MIN);
1.70.0 ยท Source

pub const MAX: NonZero<i32>

The largest value that can be represented by this non-zero integer type, equal to i32::MAX.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i32>::MAX.get(), i32::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i32>::new(-1i32)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i32>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i32>::new(0b_01100100)?;
let b = NonZero::<i32>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i32>::new(0b_01100100)?;
let b = NonZero::<i32>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<i32>::new(0b100_0000)?;
let b = NonZero::<i32>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x10000b3i32)?;
let m = NonZero::new(0xb301)?;

assert_eq!(n.rotate_left(8), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xb301i32)?;
let m = NonZero::new(0x10000b3)?;

assert_eq!(n.rotate_right(8), m);
Source

pub const fn swap_bytes(self) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678i32)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x78563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678i32)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x1e6a2c48)?);
Source

pub const fn from_be(x: NonZero<i32>) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI32;
let n = NonZero::new(0x1Ai32)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroI32::from_be(n), n)
} else {
    assert_eq!(NonZeroI32::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<i32>) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI32;
let n = NonZero::new(0x1Ai32)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroI32::from_le(n), n)
} else {
    assert_eq!(NonZeroI32::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai32)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai32)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn abs(self) -> NonZero<i32>

Computes the absolute value of self. See i32::abs for documentation on overflow behavior.

ยงExample
let pos = NonZero::new(1i32)?;
let neg = NonZero::new(-1i32)?;

assert_eq!(pos, pos.abs());
assert_eq!(pos, neg.abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_abs(self) -> Option<NonZero<i32>>

Checked absolute value. Checks for overflow and returns None if self == NonZero::<i32>::MIN. The result cannot be zero.

ยงExample
let pos = NonZero::new(1i32)?;
let neg = NonZero::new(-1i32)?;
let min = NonZero::new(i32::MIN)?;

assert_eq!(Some(pos), neg.checked_abs());
assert_eq!(None, min.checked_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn overflowing_abs(self) -> (NonZero<i32>, bool)

Computes the absolute value of self, with overflow information, see i32::overflowing_abs.

ยงExample
let pos = NonZero::new(1i32)?;
let neg = NonZero::new(-1i32)?;
let min = NonZero::new(i32::MIN)?;

assert_eq!((pos, false), pos.overflowing_abs());
assert_eq!((pos, false), neg.overflowing_abs());
assert_eq!((min, true), min.overflowing_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_abs(self) -> NonZero<i32>

Saturating absolute value, see i32::saturating_abs.

ยงExample
let pos = NonZero::new(1i32)?;
let neg = NonZero::new(-1i32)?;
let min = NonZero::new(i32::MIN)?;
let min_plus = NonZero::new(i32::MIN + 1)?;
let max = NonZero::new(i32::MAX)?;

assert_eq!(pos, pos.saturating_abs());
assert_eq!(pos, neg.saturating_abs());
assert_eq!(max, min.saturating_abs());
assert_eq!(max, min_plus.saturating_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn wrapping_abs(self) -> NonZero<i32>

Wrapping absolute value, see i32::wrapping_abs.

ยงExample
let pos = NonZero::new(1i32)?;
let neg = NonZero::new(-1i32)?;
let min = NonZero::new(i32::MIN)?;

assert_eq!(pos, pos.wrapping_abs());
assert_eq!(pos, neg.wrapping_abs());
assert_eq!(min, min.wrapping_abs());
assert_eq!(max, (-max).wrapping_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn unsigned_abs(self) -> NonZero<u32>

Computes the absolute value of self without any wrapping or panicking.

ยงExample
let u_pos = NonZero::new(1u32)?;
let i_pos = NonZero::new(1i32)?;
let i_neg = NonZero::new(-1i32)?;
let i_min = NonZero::new(i32::MIN)?;
let u_max = NonZero::new(u32::MAX / 2 + 1)?;

assert_eq!(u_pos, i_pos.unsigned_abs());
assert_eq!(u_pos, i_neg.unsigned_abs());
assert_eq!(u_max, i_min.unsigned_abs());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_positive(self) -> bool

Returns true if self is positive and false if the number is negative.

ยงExample
let pos_five = NonZero::new(5i32)?;
let neg_five = NonZero::new(-5i32)?;

assert!(pos_five.is_positive());
assert!(!neg_five.is_positive());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_negative(self) -> bool

Returns true if self is negative and false if the number is positive.

ยงExample
let pos_five = NonZero::new(5i32)?;
let neg_five = NonZero::new(-5i32)?;

assert!(neg_five.is_negative());
assert!(!pos_five.is_negative());
1.71.0 (const: 1.71.0) ยท Source

pub const fn checked_neg(self) -> Option<NonZero<i32>>

Checked negation. Computes -self, returning None if self == NonZero::<i32>::MIN.

ยงExample
let pos_five = NonZero::new(5i32)?;
let neg_five = NonZero::new(-5i32)?;
let min = NonZero::new(i32::MIN)?;

assert_eq!(pos_five.checked_neg(), Some(neg_five));
assert_eq!(min.checked_neg(), None);
1.71.0 (const: 1.71.0) ยท Source

pub const fn overflowing_neg(self) -> (NonZero<i32>, bool)

Negates self, overflowing if this is equal to the minimum value.

See i32::overflowing_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i32)?;
let neg_five = NonZero::new(-5i32)?;
let min = NonZero::new(i32::MIN)?;

assert_eq!(pos_five.overflowing_neg(), (neg_five, false));
assert_eq!(min.overflowing_neg(), (min, true));
1.71.0 (const: 1.71.0) ยท Source

pub const fn saturating_neg(self) -> NonZero<i32>

Saturating negation. Computes -self, returning NonZero::<i32>::MAX if self == NonZero::<i32>::MIN instead of overflowing.

ยงExample
let pos_five = NonZero::new(5i32)?;
let neg_five = NonZero::new(-5i32)?;
let min = NonZero::new(i32::MIN)?;
let min_plus_one = NonZero::new(i32::MIN + 1)?;
let max = NonZero::new(i32::MAX)?;

assert_eq!(pos_five.saturating_neg(), neg_five);
assert_eq!(min.saturating_neg(), max);
assert_eq!(max.saturating_neg(), min_plus_one);
1.71.0 (const: 1.71.0) ยท Source

pub const fn wrapping_neg(self) -> NonZero<i32>

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type.

See i32::wrapping_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i32)?;
let neg_five = NonZero::new(-5i32)?;
let min = NonZero::new(i32::MIN)?;

assert_eq!(pos_five.wrapping_neg(), neg_five);
assert_eq!(min.wrapping_neg(), min);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_unsigned(self) -> NonZero<u32>

Returns the bit pattern of self reinterpreted as an unsigned integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::new(-1i32).unwrap();

assert_eq!(n.cast_unsigned(), NonZero::<u32>::MAX);
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<i32>) -> Option<NonZero<i32>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2i32)?;
let four = NonZero::new(4i32)?;
let max = NonZero::new(i32::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<i32>) -> NonZero<i32>

Multiplies two non-zero integers together. Return NonZero::<i32>::MAX on overflow.

ยงExamples
let two = NonZero::new(2i32)?;
let four = NonZero::new(4i32)?;
let max = NonZero::new(i32::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<i32>) -> NonZero<i32>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > i32::MAX, or self * rhs < i32::MIN.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2i32)?;
let four = NonZero::new(4i32)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<i32>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3i32)?;
let twenty_seven = NonZero::new(27i32)?;
let half_max = NonZero::new(i32::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<i32>

Raise non-zero value to an integer power. Return NonZero::<i32>::MIN or NonZero::<i32>::MAX on overflow.

ยงExamples
let three = NonZero::new(3i32)?;
let twenty_seven = NonZero::new(27i32)?;
let max = NonZero::new(i32::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<i64>

1.67.0 ยท Source

pub const BITS: u32 = 64u32

The size of this non-zero integer type in bits.

This value is equal to i64::BITS.

ยงExamples
assert_eq!(NonZero::<i64>::BITS, i64::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<i64>

The smallest value that can be represented by this non-zero integer type, equal to i64::MIN.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i64>::MIN.get(), i64::MIN);
1.70.0 ยท Source

pub const MAX: NonZero<i64>

The largest value that can be represented by this non-zero integer type, equal to i64::MAX.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i64>::MAX.get(), i64::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i64>::new(-1i64)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i64>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i64>::new(0b_01100100)?;
let b = NonZero::<i64>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i64>::new(0b_01100100)?;
let b = NonZero::<i64>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<i64>::new(0b100_0000)?;
let b = NonZero::<i64>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xaa00000000006e1i64)?;
let m = NonZero::new(0x6e10aa)?;

assert_eq!(n.rotate_left(12), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x6e10aai64)?;
let m = NonZero::new(0xaa00000000006e1)?;

assert_eq!(n.rotate_right(12), m);
Source

pub const fn swap_bytes(self) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234567890123456i64)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x5634129078563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1234567890123456i64)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x6a2c48091e6a2c48)?);
Source

pub const fn from_be(x: NonZero<i64>) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI64;
let n = NonZero::new(0x1Ai64)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroI64::from_be(n), n)
} else {
    assert_eq!(NonZeroI64::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<i64>) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI64;
let n = NonZero::new(0x1Ai64)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroI64::from_le(n), n)
} else {
    assert_eq!(NonZeroI64::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai64)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai64)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn abs(self) -> NonZero<i64>

Computes the absolute value of self. See i64::abs for documentation on overflow behavior.

ยงExample
let pos = NonZero::new(1i64)?;
let neg = NonZero::new(-1i64)?;

assert_eq!(pos, pos.abs());
assert_eq!(pos, neg.abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_abs(self) -> Option<NonZero<i64>>

Checked absolute value. Checks for overflow and returns None if self == NonZero::<i64>::MIN. The result cannot be zero.

ยงExample
let pos = NonZero::new(1i64)?;
let neg = NonZero::new(-1i64)?;
let min = NonZero::new(i64::MIN)?;

assert_eq!(Some(pos), neg.checked_abs());
assert_eq!(None, min.checked_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn overflowing_abs(self) -> (NonZero<i64>, bool)

Computes the absolute value of self, with overflow information, see i64::overflowing_abs.

ยงExample
let pos = NonZero::new(1i64)?;
let neg = NonZero::new(-1i64)?;
let min = NonZero::new(i64::MIN)?;

assert_eq!((pos, false), pos.overflowing_abs());
assert_eq!((pos, false), neg.overflowing_abs());
assert_eq!((min, true), min.overflowing_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_abs(self) -> NonZero<i64>

Saturating absolute value, see i64::saturating_abs.

ยงExample
let pos = NonZero::new(1i64)?;
let neg = NonZero::new(-1i64)?;
let min = NonZero::new(i64::MIN)?;
let min_plus = NonZero::new(i64::MIN + 1)?;
let max = NonZero::new(i64::MAX)?;

assert_eq!(pos, pos.saturating_abs());
assert_eq!(pos, neg.saturating_abs());
assert_eq!(max, min.saturating_abs());
assert_eq!(max, min_plus.saturating_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn wrapping_abs(self) -> NonZero<i64>

Wrapping absolute value, see i64::wrapping_abs.

ยงExample
let pos = NonZero::new(1i64)?;
let neg = NonZero::new(-1i64)?;
let min = NonZero::new(i64::MIN)?;

assert_eq!(pos, pos.wrapping_abs());
assert_eq!(pos, neg.wrapping_abs());
assert_eq!(min, min.wrapping_abs());
assert_eq!(max, (-max).wrapping_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn unsigned_abs(self) -> NonZero<u64>

Computes the absolute value of self without any wrapping or panicking.

ยงExample
let u_pos = NonZero::new(1u64)?;
let i_pos = NonZero::new(1i64)?;
let i_neg = NonZero::new(-1i64)?;
let i_min = NonZero::new(i64::MIN)?;
let u_max = NonZero::new(u64::MAX / 2 + 1)?;

assert_eq!(u_pos, i_pos.unsigned_abs());
assert_eq!(u_pos, i_neg.unsigned_abs());
assert_eq!(u_max, i_min.unsigned_abs());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_positive(self) -> bool

Returns true if self is positive and false if the number is negative.

ยงExample
let pos_five = NonZero::new(5i64)?;
let neg_five = NonZero::new(-5i64)?;

assert!(pos_five.is_positive());
assert!(!neg_five.is_positive());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_negative(self) -> bool

Returns true if self is negative and false if the number is positive.

ยงExample
let pos_five = NonZero::new(5i64)?;
let neg_five = NonZero::new(-5i64)?;

assert!(neg_five.is_negative());
assert!(!pos_five.is_negative());
1.71.0 (const: 1.71.0) ยท Source

pub const fn checked_neg(self) -> Option<NonZero<i64>>

Checked negation. Computes -self, returning None if self == NonZero::<i64>::MIN.

ยงExample
let pos_five = NonZero::new(5i64)?;
let neg_five = NonZero::new(-5i64)?;
let min = NonZero::new(i64::MIN)?;

assert_eq!(pos_five.checked_neg(), Some(neg_five));
assert_eq!(min.checked_neg(), None);
1.71.0 (const: 1.71.0) ยท Source

pub const fn overflowing_neg(self) -> (NonZero<i64>, bool)

Negates self, overflowing if this is equal to the minimum value.

See i64::overflowing_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i64)?;
let neg_five = NonZero::new(-5i64)?;
let min = NonZero::new(i64::MIN)?;

assert_eq!(pos_five.overflowing_neg(), (neg_five, false));
assert_eq!(min.overflowing_neg(), (min, true));
1.71.0 (const: 1.71.0) ยท Source

pub const fn saturating_neg(self) -> NonZero<i64>

Saturating negation. Computes -self, returning NonZero::<i64>::MAX if self == NonZero::<i64>::MIN instead of overflowing.

ยงExample
let pos_five = NonZero::new(5i64)?;
let neg_five = NonZero::new(-5i64)?;
let min = NonZero::new(i64::MIN)?;
let min_plus_one = NonZero::new(i64::MIN + 1)?;
let max = NonZero::new(i64::MAX)?;

assert_eq!(pos_five.saturating_neg(), neg_five);
assert_eq!(min.saturating_neg(), max);
assert_eq!(max.saturating_neg(), min_plus_one);
1.71.0 (const: 1.71.0) ยท Source

pub const fn wrapping_neg(self) -> NonZero<i64>

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type.

See i64::wrapping_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i64)?;
let neg_five = NonZero::new(-5i64)?;
let min = NonZero::new(i64::MIN)?;

assert_eq!(pos_five.wrapping_neg(), neg_five);
assert_eq!(min.wrapping_neg(), min);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_unsigned(self) -> NonZero<u64>

Returns the bit pattern of self reinterpreted as an unsigned integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::new(-1i64).unwrap();

assert_eq!(n.cast_unsigned(), NonZero::<u64>::MAX);
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<i64>) -> Option<NonZero<i64>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2i64)?;
let four = NonZero::new(4i64)?;
let max = NonZero::new(i64::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<i64>) -> NonZero<i64>

Multiplies two non-zero integers together. Return NonZero::<i64>::MAX on overflow.

ยงExamples
let two = NonZero::new(2i64)?;
let four = NonZero::new(4i64)?;
let max = NonZero::new(i64::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<i64>) -> NonZero<i64>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > i64::MAX, or self * rhs < i64::MIN.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2i64)?;
let four = NonZero::new(4i64)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<i64>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3i64)?;
let twenty_seven = NonZero::new(27i64)?;
let half_max = NonZero::new(i64::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<i64>

Raise non-zero value to an integer power. Return NonZero::<i64>::MIN or NonZero::<i64>::MAX on overflow.

ยงExamples
let three = NonZero::new(3i64)?;
let twenty_seven = NonZero::new(27i64)?;
let max = NonZero::new(i64::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<i128>

1.67.0 ยท Source

pub const BITS: u32 = 128u32

The size of this non-zero integer type in bits.

This value is equal to i128::BITS.

ยงExamples
assert_eq!(NonZero::<i128>::BITS, i128::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<i128>

The smallest value that can be represented by this non-zero integer type, equal to i128::MIN.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i128>::MIN.get(), i128::MIN);
1.70.0 ยท Source

pub const MAX: NonZero<i128>

The largest value that can be represented by this non-zero integer type, equal to i128::MAX.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<i128>::MAX.get(), i128::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i128>::new(-1i128)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<i128>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i128>::new(0b_01100100)?;
let b = NonZero::<i128>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<i128>::new(0b_01100100)?;
let b = NonZero::<i128>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<i128>::new(0b100_0000)?;
let b = NonZero::<i128>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x13f40000000000000000000000004f76i128)?;
let m = NonZero::new(0x4f7613f4)?;

assert_eq!(n.rotate_left(16), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x4f7613f4i128)?;
let m = NonZero::new(0x13f40000000000000000000000004f76)?;

assert_eq!(n.rotate_right(16), m);
Source

pub const fn swap_bytes(self) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678901234567890123456789012i128)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x12907856341290785634129078563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678901234567890123456789012i128)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x48091e6a2c48091e6a2c48091e6a2c48)?);
Source

pub const fn from_be(x: NonZero<i128>) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI128;
let n = NonZero::new(0x1Ai128)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroI128::from_be(n), n)
} else {
    assert_eq!(NonZeroI128::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<i128>) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroI128;
let n = NonZero::new(0x1Ai128)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroI128::from_le(n), n)
} else {
    assert_eq!(NonZeroI128::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai128)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Ai128)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn abs(self) -> NonZero<i128>

Computes the absolute value of self. See i128::abs for documentation on overflow behavior.

ยงExample
let pos = NonZero::new(1i128)?;
let neg = NonZero::new(-1i128)?;

assert_eq!(pos, pos.abs());
assert_eq!(pos, neg.abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_abs(self) -> Option<NonZero<i128>>

Checked absolute value. Checks for overflow and returns None if self == NonZero::<i128>::MIN. The result cannot be zero.

ยงExample
let pos = NonZero::new(1i128)?;
let neg = NonZero::new(-1i128)?;
let min = NonZero::new(i128::MIN)?;

assert_eq!(Some(pos), neg.checked_abs());
assert_eq!(None, min.checked_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn overflowing_abs(self) -> (NonZero<i128>, bool)

Computes the absolute value of self, with overflow information, see i128::overflowing_abs.

ยงExample
let pos = NonZero::new(1i128)?;
let neg = NonZero::new(-1i128)?;
let min = NonZero::new(i128::MIN)?;

assert_eq!((pos, false), pos.overflowing_abs());
assert_eq!((pos, false), neg.overflowing_abs());
assert_eq!((min, true), min.overflowing_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_abs(self) -> NonZero<i128>

Saturating absolute value, see i128::saturating_abs.

ยงExample
let pos = NonZero::new(1i128)?;
let neg = NonZero::new(-1i128)?;
let min = NonZero::new(i128::MIN)?;
let min_plus = NonZero::new(i128::MIN + 1)?;
let max = NonZero::new(i128::MAX)?;

assert_eq!(pos, pos.saturating_abs());
assert_eq!(pos, neg.saturating_abs());
assert_eq!(max, min.saturating_abs());
assert_eq!(max, min_plus.saturating_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn wrapping_abs(self) -> NonZero<i128>

Wrapping absolute value, see i128::wrapping_abs.

ยงExample
let pos = NonZero::new(1i128)?;
let neg = NonZero::new(-1i128)?;
let min = NonZero::new(i128::MIN)?;

assert_eq!(pos, pos.wrapping_abs());
assert_eq!(pos, neg.wrapping_abs());
assert_eq!(min, min.wrapping_abs());
assert_eq!(max, (-max).wrapping_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn unsigned_abs(self) -> NonZero<u128>

Computes the absolute value of self without any wrapping or panicking.

ยงExample
let u_pos = NonZero::new(1u128)?;
let i_pos = NonZero::new(1i128)?;
let i_neg = NonZero::new(-1i128)?;
let i_min = NonZero::new(i128::MIN)?;
let u_max = NonZero::new(u128::MAX / 2 + 1)?;

assert_eq!(u_pos, i_pos.unsigned_abs());
assert_eq!(u_pos, i_neg.unsigned_abs());
assert_eq!(u_max, i_min.unsigned_abs());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_positive(self) -> bool

Returns true if self is positive and false if the number is negative.

ยงExample
let pos_five = NonZero::new(5i128)?;
let neg_five = NonZero::new(-5i128)?;

assert!(pos_five.is_positive());
assert!(!neg_five.is_positive());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_negative(self) -> bool

Returns true if self is negative and false if the number is positive.

ยงExample
let pos_five = NonZero::new(5i128)?;
let neg_five = NonZero::new(-5i128)?;

assert!(neg_five.is_negative());
assert!(!pos_five.is_negative());
1.71.0 (const: 1.71.0) ยท Source

pub const fn checked_neg(self) -> Option<NonZero<i128>>

Checked negation. Computes -self, returning None if self == NonZero::<i128>::MIN.

ยงExample
let pos_five = NonZero::new(5i128)?;
let neg_five = NonZero::new(-5i128)?;
let min = NonZero::new(i128::MIN)?;

assert_eq!(pos_five.checked_neg(), Some(neg_five));
assert_eq!(min.checked_neg(), None);
1.71.0 (const: 1.71.0) ยท Source

pub const fn overflowing_neg(self) -> (NonZero<i128>, bool)

Negates self, overflowing if this is equal to the minimum value.

See i128::overflowing_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i128)?;
let neg_five = NonZero::new(-5i128)?;
let min = NonZero::new(i128::MIN)?;

assert_eq!(pos_five.overflowing_neg(), (neg_five, false));
assert_eq!(min.overflowing_neg(), (min, true));
1.71.0 (const: 1.71.0) ยท Source

pub const fn saturating_neg(self) -> NonZero<i128>

Saturating negation. Computes -self, returning NonZero::<i128>::MAX if self == NonZero::<i128>::MIN instead of overflowing.

ยงExample
let pos_five = NonZero::new(5i128)?;
let neg_five = NonZero::new(-5i128)?;
let min = NonZero::new(i128::MIN)?;
let min_plus_one = NonZero::new(i128::MIN + 1)?;
let max = NonZero::new(i128::MAX)?;

assert_eq!(pos_five.saturating_neg(), neg_five);
assert_eq!(min.saturating_neg(), max);
assert_eq!(max.saturating_neg(), min_plus_one);
1.71.0 (const: 1.71.0) ยท Source

pub const fn wrapping_neg(self) -> NonZero<i128>

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type.

See i128::wrapping_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5i128)?;
let neg_five = NonZero::new(-5i128)?;
let min = NonZero::new(i128::MIN)?;

assert_eq!(pos_five.wrapping_neg(), neg_five);
assert_eq!(min.wrapping_neg(), min);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_unsigned(self) -> NonZero<u128>

Returns the bit pattern of self reinterpreted as an unsigned integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::new(-1i128).unwrap();

assert_eq!(n.cast_unsigned(), NonZero::<u128>::MAX);
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<i128>) -> Option<NonZero<i128>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2i128)?;
let four = NonZero::new(4i128)?;
let max = NonZero::new(i128::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<i128>) -> NonZero<i128>

Multiplies two non-zero integers together. Return NonZero::<i128>::MAX on overflow.

ยงExamples
let two = NonZero::new(2i128)?;
let four = NonZero::new(4i128)?;
let max = NonZero::new(i128::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<i128>) -> NonZero<i128>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > i128::MAX, or self * rhs < i128::MIN.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2i128)?;
let four = NonZero::new(4i128)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<i128>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3i128)?;
let twenty_seven = NonZero::new(27i128)?;
let half_max = NonZero::new(i128::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<i128>

Raise non-zero value to an integer power. Return NonZero::<i128>::MIN or NonZero::<i128>::MAX on overflow.

ยงExamples
let three = NonZero::new(3i128)?;
let twenty_seven = NonZero::new(27i128)?;
let max = NonZero::new(i128::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));
Sourceยง

impl NonZero<isize>

1.67.0 ยท Source

pub const BITS: u32 = 32u32

The size of this non-zero integer type in bits.

This value is equal to isize::BITS.

ยงExamples
assert_eq!(NonZero::<isize>::BITS, isize::BITS);
1.70.0 ยท Source

pub const MIN: NonZero<isize>

The smallest value that can be represented by this non-zero integer type, equal to isize::MIN.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<isize>::MIN.get(), isize::MIN);
1.70.0 ยท Source

pub const MAX: NonZero<isize>

The largest value that can be represented by this non-zero integer type, equal to isize::MAX.

Note: While most integer types are defined for every whole number between MIN and MAX, signed non-zero integers are a special case. They have a โ€œgapโ€ at 0.

ยงExamples
assert_eq!(NonZero::<isize>::MAX.get(), isize::MAX);
1.53.0 (const: 1.53.0) ยท Source

pub const fn leading_zeros(self) -> u32

Returns the number of leading zeros in the binary representation of self.

On many architectures, this function can perform better than leading_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<isize>::new(-1isize)?;

assert_eq!(n.leading_zeros(), 0);
1.53.0 (const: 1.53.0) ยท Source

pub const fn trailing_zeros(self) -> u32

Returns the number of trailing zeros in the binary representation of self.

On many architectures, this function can perform better than trailing_zeros() on the underlying integer type, as special handling of zero can be avoided.

ยงExamples

Basic usage:

let n = NonZero::<isize>::new(0b0101000)?;

assert_eq!(n.trailing_zeros(), 3);
Source

pub const fn isolate_most_significant_one(self) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the most significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<isize>::new(0b_01100100)?;
let b = NonZero::<isize>::new(0b_01000000)?;

assert_eq!(a.isolate_most_significant_one(), b);
Source

pub const fn isolate_least_significant_one(self) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (isolate_most_least_significant_one)

Returns self with only the least significant bit set.

ยงExample

Basic usage:

#![feature(isolate_most_least_significant_one)]

let a = NonZero::<isize>::new(0b_01100100)?;
let b = NonZero::<isize>::new(0b_00000100)?;

assert_eq!(a.isolate_least_significant_one(), b);
1.86.0 (const: 1.86.0) ยท Source

pub const fn count_ones(self) -> NonZero<u32>

Returns the number of ones in the binary representation of self.

ยงExamples

Basic usage:

let a = NonZero::<isize>::new(0b100_0000)?;
let b = NonZero::<isize>::new(0b100_0011)?;

assert_eq!(a.count_ones(), NonZero::new(1)?);
assert_eq!(b.count_ones(), NonZero::new(3)?);
Source

pub const fn rotate_left(self, n: u32) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the left by a specified amount, n, wrapping the truncated bits to the end of the resulting integer.

Please note this isnโ€™t the same operation as the << shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x10000b3isize)?;
let m = NonZero::new(0xb301)?;

assert_eq!(n.rotate_left(8), m);
Source

pub const fn rotate_right(self, n: u32) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Shifts the bits to the right by a specified amount, n, wrapping the truncated bits to the beginning of the resulting integer.

Please note this isnโ€™t the same operation as the >> shifting operator!

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0xb301isize)?;
let m = NonZero::new(0x10000b3)?;

assert_eq!(n.rotate_right(8), m);
Source

pub const fn swap_bytes(self) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the byte order of the integer.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678isize)?;
let m = n.swap_bytes();

assert_eq!(m, NonZero::new(0x78563412)?);
Source

pub const fn reverse_bits(self) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Reverses the order of bits in the integer. The least significant bit becomes the most significant bit, second least-significant bit becomes second most-significant bit, etc.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x12345678isize)?;
let m = n.reverse_bits();

assert_eq!(m, NonZero::new(0x1e6a2c48)?);
Source

pub const fn from_be(x: NonZero<isize>) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from big endian to the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroIsize;
let n = NonZero::new(0x1Aisize)?;

if cfg!(target_endian = "big") {
    assert_eq!(NonZeroIsize::from_be(n), n)
} else {
    assert_eq!(NonZeroIsize::from_be(n), n.swap_bytes())
}
Source

pub const fn from_le(x: NonZero<isize>) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts an integer from little endian to the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
use std::num::NonZeroIsize;
let n = NonZero::new(0x1Aisize)?;

if cfg!(target_endian = "little") {
    assert_eq!(NonZeroIsize::from_le(n), n)
} else {
    assert_eq!(NonZeroIsize::from_le(n), n.swap_bytes())
}
Source

pub const fn to_be(self) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to big endian from the targetโ€™s endianness.

On big endian this is a no-op. On little endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Aisize)?;

if cfg!(target_endian = "big") {
    assert_eq!(n.to_be(), n)
} else {
    assert_eq!(n.to_be(), n.swap_bytes())
}
Source

pub const fn to_le(self) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_bitwise)

Converts self to little endian from the targetโ€™s endianness.

On little endian this is a no-op. On big endian the bytes are swapped.

ยงExamples

Basic usage:

#![feature(nonzero_bitwise)]
let n = NonZero::new(0x1Aisize)?;

if cfg!(target_endian = "little") {
    assert_eq!(n.to_le(), n)
} else {
    assert_eq!(n.to_le(), n.swap_bytes())
}
1.64.0 (const: 1.64.0) ยท Source

pub const fn abs(self) -> NonZero<isize>

Computes the absolute value of self. See isize::abs for documentation on overflow behavior.

ยงExample
let pos = NonZero::new(1isize)?;
let neg = NonZero::new(-1isize)?;

assert_eq!(pos, pos.abs());
assert_eq!(pos, neg.abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_abs(self) -> Option<NonZero<isize>>

Checked absolute value. Checks for overflow and returns None if self == NonZero::<isize>::MIN. The result cannot be zero.

ยงExample
let pos = NonZero::new(1isize)?;
let neg = NonZero::new(-1isize)?;
let min = NonZero::new(isize::MIN)?;

assert_eq!(Some(pos), neg.checked_abs());
assert_eq!(None, min.checked_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn overflowing_abs(self) -> (NonZero<isize>, bool)

Computes the absolute value of self, with overflow information, see isize::overflowing_abs.

ยงExample
let pos = NonZero::new(1isize)?;
let neg = NonZero::new(-1isize)?;
let min = NonZero::new(isize::MIN)?;

assert_eq!((pos, false), pos.overflowing_abs());
assert_eq!((pos, false), neg.overflowing_abs());
assert_eq!((min, true), min.overflowing_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_abs(self) -> NonZero<isize>

Saturating absolute value, see isize::saturating_abs.

ยงExample
let pos = NonZero::new(1isize)?;
let neg = NonZero::new(-1isize)?;
let min = NonZero::new(isize::MIN)?;
let min_plus = NonZero::new(isize::MIN + 1)?;
let max = NonZero::new(isize::MAX)?;

assert_eq!(pos, pos.saturating_abs());
assert_eq!(pos, neg.saturating_abs());
assert_eq!(max, min.saturating_abs());
assert_eq!(max, min_plus.saturating_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn wrapping_abs(self) -> NonZero<isize>

Wrapping absolute value, see isize::wrapping_abs.

ยงExample
let pos = NonZero::new(1isize)?;
let neg = NonZero::new(-1isize)?;
let min = NonZero::new(isize::MIN)?;

assert_eq!(pos, pos.wrapping_abs());
assert_eq!(pos, neg.wrapping_abs());
assert_eq!(min, min.wrapping_abs());
assert_eq!(max, (-max).wrapping_abs());
1.64.0 (const: 1.64.0) ยท Source

pub const fn unsigned_abs(self) -> NonZero<usize>

Computes the absolute value of self without any wrapping or panicking.

ยงExample
let u_pos = NonZero::new(1usize)?;
let i_pos = NonZero::new(1isize)?;
let i_neg = NonZero::new(-1isize)?;
let i_min = NonZero::new(isize::MIN)?;
let u_max = NonZero::new(usize::MAX / 2 + 1)?;

assert_eq!(u_pos, i_pos.unsigned_abs());
assert_eq!(u_pos, i_neg.unsigned_abs());
assert_eq!(u_max, i_min.unsigned_abs());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_positive(self) -> bool

Returns true if self is positive and false if the number is negative.

ยงExample
let pos_five = NonZero::new(5isize)?;
let neg_five = NonZero::new(-5isize)?;

assert!(pos_five.is_positive());
assert!(!neg_five.is_positive());
1.71.0 (const: 1.71.0) ยท Source

pub const fn is_negative(self) -> bool

Returns true if self is negative and false if the number is positive.

ยงExample
let pos_five = NonZero::new(5isize)?;
let neg_five = NonZero::new(-5isize)?;

assert!(neg_five.is_negative());
assert!(!pos_five.is_negative());
1.71.0 (const: 1.71.0) ยท Source

pub const fn checked_neg(self) -> Option<NonZero<isize>>

Checked negation. Computes -self, returning None if self == NonZero::<isize>::MIN.

ยงExample
let pos_five = NonZero::new(5isize)?;
let neg_five = NonZero::new(-5isize)?;
let min = NonZero::new(isize::MIN)?;

assert_eq!(pos_five.checked_neg(), Some(neg_five));
assert_eq!(min.checked_neg(), None);
1.71.0 (const: 1.71.0) ยท Source

pub const fn overflowing_neg(self) -> (NonZero<isize>, bool)

Negates self, overflowing if this is equal to the minimum value.

See isize::overflowing_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5isize)?;
let neg_five = NonZero::new(-5isize)?;
let min = NonZero::new(isize::MIN)?;

assert_eq!(pos_five.overflowing_neg(), (neg_five, false));
assert_eq!(min.overflowing_neg(), (min, true));
1.71.0 (const: 1.71.0) ยท Source

pub const fn saturating_neg(self) -> NonZero<isize>

Saturating negation. Computes -self, returning NonZero::<isize>::MAX if self == NonZero::<isize>::MIN instead of overflowing.

ยงExample
let pos_five = NonZero::new(5isize)?;
let neg_five = NonZero::new(-5isize)?;
let min = NonZero::new(isize::MIN)?;
let min_plus_one = NonZero::new(isize::MIN + 1)?;
let max = NonZero::new(isize::MAX)?;

assert_eq!(pos_five.saturating_neg(), neg_five);
assert_eq!(min.saturating_neg(), max);
assert_eq!(max.saturating_neg(), min_plus_one);
1.71.0 (const: 1.71.0) ยท Source

pub const fn wrapping_neg(self) -> NonZero<isize>

Wrapping (modular) negation. Computes -self, wrapping around at the boundary of the type.

See isize::wrapping_neg for documentation on overflow behavior.

ยงExample
let pos_five = NonZero::new(5isize)?;
let neg_five = NonZero::new(-5isize)?;
let min = NonZero::new(isize::MIN)?;

assert_eq!(pos_five.wrapping_neg(), neg_five);
assert_eq!(min.wrapping_neg(), min);
1.87.0 (const: 1.87.0) ยท Source

pub const fn cast_unsigned(self) -> NonZero<usize>

Returns the bit pattern of self reinterpreted as an unsigned integer of the same size.

ยงExamples

Basic usage:


let n = NonZero::new(-1isize).unwrap();

assert_eq!(n.cast_unsigned(), NonZero::<usize>::MAX);
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_mul(self, other: NonZero<isize>) -> Option<NonZero<isize>>

Multiplies two non-zero integers together. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let two = NonZero::new(2isize)?;
let four = NonZero::new(4isize)?;
let max = NonZero::new(isize::MAX)?;

assert_eq!(Some(four), two.checked_mul(two));
assert_eq!(None, max.checked_mul(two));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_mul(self, other: NonZero<isize>) -> NonZero<isize>

Multiplies two non-zero integers together. Return NonZero::<isize>::MAX on overflow.

ยงExamples
let two = NonZero::new(2isize)?;
let four = NonZero::new(4isize)?;
let max = NonZero::new(isize::MAX)?;

assert_eq!(four, two.saturating_mul(two));
assert_eq!(max, four.saturating_mul(max));
Source

pub const unsafe fn unchecked_mul(self, other: NonZero<isize>) -> NonZero<isize>

๐Ÿ”ฌThis is a nightly-only experimental API. (nonzero_ops)

Multiplies two non-zero integers together, assuming overflow cannot occur. Overflow is unchecked, and it is undefined behavior to overflow even if the result would wrap to a non-zero value. The behavior is undefined as soon as self * rhs > isize::MAX, or self * rhs < isize::MIN.

ยงExamples
#![feature(nonzero_ops)]

let two = NonZero::new(2isize)?;
let four = NonZero::new(4isize)?;

assert_eq!(four, unsafe { two.unchecked_mul(two) });
1.64.0 (const: 1.64.0) ยท Source

pub const fn checked_pow(self, other: u32) -> Option<NonZero<isize>>

Raises non-zero value to an integer power. Checks for overflow and returns None on overflow. As a consequence, the result cannot wrap to zero.

ยงExamples
let three = NonZero::new(3isize)?;
let twenty_seven = NonZero::new(27isize)?;
let half_max = NonZero::new(isize::MAX / 2)?;

assert_eq!(Some(twenty_seven), three.checked_pow(3));
assert_eq!(None, half_max.checked_pow(3));
1.64.0 (const: 1.64.0) ยท Source

pub const fn saturating_pow(self, other: u32) -> NonZero<isize>

Raise non-zero value to an integer power. Return NonZero::<isize>::MIN or NonZero::<isize>::MAX on overflow.

ยงExamples
let three = NonZero::new(3isize)?;
let twenty_seven = NonZero::new(27isize)?;
let max = NonZero::new(isize::MAX)?;

assert_eq!(twenty_seven, three.saturating_pow(3));
assert_eq!(max, max.saturating_pow(3));

Trait Implementationsยง

1.28.0 ยท Sourceยง

impl<T> Binary for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
1.45.0 ยท Sourceยง

impl<T> BitOr<NonZero<T>> for T
where T: ZeroablePrimitive + BitOr<Output = T>,

Sourceยง

type Output = NonZero<T>

The resulting type after applying the | operator.
Sourceยง

fn bitor(self, rhs: NonZero<T>) -> <T as BitOr<NonZero<T>>>::Output

Performs the | operation. Read more
1.45.0 ยท Sourceยง

impl<T> BitOr<T> for NonZero<T>
where T: ZeroablePrimitive + BitOr<Output = T>,

Sourceยง

type Output = NonZero<T>

The resulting type after applying the | operator.
Sourceยง

fn bitor(self, rhs: T) -> <NonZero<T> as BitOr<T>>::Output

Performs the | operation. Read more
1.45.0 ยท Sourceยง

impl<T> BitOr for NonZero<T>
where T: ZeroablePrimitive + BitOr<Output = T>,

Sourceยง

type Output = NonZero<T>

The resulting type after applying the | operator.
Sourceยง

fn bitor(self, rhs: NonZero<T>) -> <NonZero<T> as BitOr>::Output

Performs the | operation. Read more
1.45.0 ยท Sourceยง

impl<T> BitOrAssign<T> for NonZero<T>
where T: ZeroablePrimitive, NonZero<T>: BitOr<T, Output = NonZero<T>>,

Sourceยง

fn bitor_assign(&mut self, rhs: T)

Performs the |= operation. Read more
1.45.0 ยท Sourceยง

impl<T> BitOrAssign for NonZero<T>
where T: ZeroablePrimitive, NonZero<T>: BitOr<Output = NonZero<T>>,

Sourceยง

fn bitor_assign(&mut self, rhs: NonZero<T>)

Performs the |= operation. Read more
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<i128>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<i128>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<i16>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<i16>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<i32>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<i32>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<i64>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<i64>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<i8>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<i8>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<isize>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<isize>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<u128>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<u128>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<u16>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<u16>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<u32>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<u32>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<u64>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<u64>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<u8>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<u8>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
Sourceยง

impl<'de, __Context> BorrowDecode<'de, __Context> for NonZero<usize>

Sourceยง

fn borrow_decode<D>(decoder: &mut D) -> Result<NonZero<usize>, DecodeError>
where D: BorrowDecoder<'de, Context = __Context>,

Attempt to decode this type with the given BorrowDecode.
1.28.0 ยท Sourceยง

impl<T> Clone for NonZero<T>

Sourceยง

fn clone(&self) -> NonZero<T>

Returns a copy of the value. Read more
1.0.0 ยท Sourceยง

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

Performs copy-assignment from source. Read more
1.28.0 ยท Sourceยง

impl<T> Debug for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Sourceยง

impl<Context> Decode<Context> for NonZero<i128>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<i128>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<i16>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<i16>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<i32>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<i32>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<i64>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<i64>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<i8>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<i8>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<isize>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<isize>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<u128>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<u128>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<u16>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<u16>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<u32>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<u32>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<u64>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<u64>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<u8>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<u8>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<Context> Decode<Context> for NonZero<usize>

Sourceยง

fn decode<D>(decoder: &mut D) -> Result<NonZero<usize>, DecodeError>
where D: Decoder<Context = Context>,

Attempt to decode this type with the given Decode.
Sourceยง

impl<'de> Deserialize<'de> for NonZero<i128>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<i128>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<i16>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<i16>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<i32>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<i32>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<i64>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<i64>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<i8>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<i8>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<isize>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<isize>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<u128>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<u128>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<u16>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<u16>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<u32>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<u32>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<u64>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<u64>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<u8>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<u8>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl<'de> Deserialize<'de> for NonZero<usize>

Sourceยง

fn deserialize<D>( deserializer: D, ) -> Result<NonZero<usize>, <D as Deserializer<'de>>::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
1.28.0 ยท Sourceยง

impl<T> Display for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
1.51.0 ยท Sourceยง

impl Div<NonZero<u128>> for u128

Sourceยง

fn div(self, other: NonZero<u128>) -> u128

Same as self / other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

Sourceยง

type Output = u128

The resulting type after applying the / operator.
1.51.0 ยท Sourceยง

impl Div<NonZero<u16>> for u16

Sourceยง

fn div(self, other: NonZero<u16>) -> u16

Same as self / other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

Sourceยง

type Output = u16

The resulting type after applying the / operator.
1.51.0 ยท Sourceยง

impl Div<NonZero<u32>> for u32

Sourceยง

fn div(self, other: NonZero<u32>) -> u32

Same as self / other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

Sourceยง

type Output = u32

The resulting type after applying the / operator.
1.51.0 ยท Sourceยง

impl Div<NonZero<u64>> for u64

Sourceยง

fn div(self, other: NonZero<u64>) -> u64

Same as self / other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

Sourceยง

type Output = u64

The resulting type after applying the / operator.
1.51.0 ยท Sourceยง

impl Div<NonZero<u8>> for u8

Sourceยง

fn div(self, other: NonZero<u8>) -> u8

Same as self / other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

Sourceยง

type Output = u8

The resulting type after applying the / operator.
1.51.0 ยท Sourceยง

impl Div<NonZero<usize>> for usize

Sourceยง

fn div(self, other: NonZero<usize>) -> usize

Same as self / other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

Sourceยง

type Output = usize

The resulting type after applying the / operator.
1.79.0 ยท Sourceยง

impl DivAssign<NonZero<u128>> for u128

Sourceยง

fn div_assign(&mut self, other: NonZero<u128>)

Same as self /= other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

1.79.0 ยท Sourceยง

impl DivAssign<NonZero<u16>> for u16

Sourceยง

fn div_assign(&mut self, other: NonZero<u16>)

Same as self /= other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

1.79.0 ยท Sourceยง

impl DivAssign<NonZero<u32>> for u32

Sourceยง

fn div_assign(&mut self, other: NonZero<u32>)

Same as self /= other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

1.79.0 ยท Sourceยง

impl DivAssign<NonZero<u64>> for u64

Sourceยง

fn div_assign(&mut self, other: NonZero<u64>)

Same as self /= other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

1.79.0 ยท Sourceยง

impl DivAssign<NonZero<u8>> for u8

Sourceยง

fn div_assign(&mut self, other: NonZero<u8>)

Same as self /= other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

1.79.0 ยท Sourceยง

impl DivAssign<NonZero<usize>> for usize

Sourceยง

fn div_assign(&mut self, other: NonZero<usize>)

Same as self /= other.get(), but because other is a NonZero<_>, thereโ€™s never a runtime check for division-by-zero.

This operation rounds towards zero, truncating any fractional part of the exact result, and cannot panic.

Sourceยง

impl Encode for NonZero<i128>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<i16>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<i32>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<i64>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<i8>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<isize>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<u128>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<u16>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<u32>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<u64>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<u8>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl Encode for NonZero<usize>

Sourceยง

fn encode<E>(&self, encoder: &mut E) -> Result<(), EncodeError>
where E: Encoder,

Encode a given type.
Sourceยง

impl From<Alignment> for NonZero<usize>

Sourceยง

fn from(align: Alignment) -> NonZero<usize>

Converts to this type from the input type.
1.31.0 ยท Sourceยง

impl<T> From<NonZero<T>> for T

Sourceยง

fn from(nonzero: NonZero<T>) -> T

Converts to this type from the input type.
1.41.0 ยท Sourceยง

impl From<NonZero<i16>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<i16>) -> NonZero<i128>

Converts NonZero<i16> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i16>> for NonZero<i32>

Sourceยง

fn from(small: NonZero<i16>) -> NonZero<i32>

Converts NonZero<i16> to NonZero<i32> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i16>> for NonZero<i64>

Sourceยง

fn from(small: NonZero<i16>) -> NonZero<i64>

Converts NonZero<i16> to NonZero<i64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i16>> for NonZero<isize>

Sourceยง

fn from(small: NonZero<i16>) -> NonZero<isize>

Converts NonZero<i16> to NonZero<isize> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i32>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<i32>) -> NonZero<i128>

Converts NonZero<i32> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i32>> for NonZero<i64>

Sourceยง

fn from(small: NonZero<i32>) -> NonZero<i64>

Converts NonZero<i32> to NonZero<i64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i64>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<i64>) -> NonZero<i128>

Converts NonZero<i64> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i8>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<i8>) -> NonZero<i128>

Converts NonZero<i8> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i8>> for NonZero<i16>

Sourceยง

fn from(small: NonZero<i8>) -> NonZero<i16>

Converts NonZero<i8> to NonZero<i16> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i8>> for NonZero<i32>

Sourceยง

fn from(small: NonZero<i8>) -> NonZero<i32>

Converts NonZero<i8> to NonZero<i32> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i8>> for NonZero<i64>

Sourceยง

fn from(small: NonZero<i8>) -> NonZero<i64>

Converts NonZero<i8> to NonZero<i64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<i8>> for NonZero<isize>

Sourceยง

fn from(small: NonZero<i8>) -> NonZero<isize>

Converts NonZero<i8> to NonZero<isize> losslessly.

Sourceยง

impl<const LIMBS: usize> From<NonZero<u128>> for NonZero<Uint<LIMBS>>

Sourceยง

fn from(integer: NonZero<u128>) -> NonZero<Uint<LIMBS>>

Converts to this type from the input type.
Sourceยง

impl From<NonZero<u16>> for NonZero<Limb>

Sourceยง

fn from(integer: NonZero<u16>) -> NonZero<Limb>

Converts to this type from the input type.
Sourceยง

impl<const LIMBS: usize> From<NonZero<u16>> for NonZero<Uint<LIMBS>>

Sourceยง

fn from(integer: NonZero<u16>) -> NonZero<Uint<LIMBS>>

Converts to this type from the input type.
1.41.0 ยท Sourceยง

impl From<NonZero<u16>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<u16>) -> NonZero<i128>

Converts NonZero<u16> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u16>> for NonZero<i32>

Sourceยง

fn from(small: NonZero<u16>) -> NonZero<i32>

Converts NonZero<u16> to NonZero<i32> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u16>> for NonZero<i64>

Sourceยง

fn from(small: NonZero<u16>) -> NonZero<i64>

Converts NonZero<u16> to NonZero<i64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u16>> for NonZero<u128>

Sourceยง

fn from(small: NonZero<u16>) -> NonZero<u128>

Converts NonZero<u16> to NonZero<u128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u16>> for NonZero<u32>

Sourceยง

fn from(small: NonZero<u16>) -> NonZero<u32>

Converts NonZero<u16> to NonZero<u32> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u16>> for NonZero<u64>

Sourceยง

fn from(small: NonZero<u16>) -> NonZero<u64>

Converts NonZero<u16> to NonZero<u64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u16>> for NonZero<usize>

Sourceยง

fn from(small: NonZero<u16>) -> NonZero<usize>

Converts NonZero<u16> to NonZero<usize> losslessly.

Sourceยง

impl From<NonZero<u32>> for Error

Sourceยง

fn from(code: NonZero<u32>) -> Error

Converts to this type from the input type.
Sourceยง

impl From<NonZero<u32>> for Error

Sourceยง

fn from(code: NonZero<u32>) -> Error

Converts to this type from the input type.
Sourceยง

impl From<NonZero<u32>> for NonZero<Limb>

Sourceยง

fn from(integer: NonZero<u32>) -> NonZero<Limb>

Converts to this type from the input type.
Sourceยง

impl<const LIMBS: usize> From<NonZero<u32>> for NonZero<Uint<LIMBS>>

Sourceยง

fn from(integer: NonZero<u32>) -> NonZero<Uint<LIMBS>>

Converts to this type from the input type.
1.41.0 ยท Sourceยง

impl From<NonZero<u32>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<u32>) -> NonZero<i128>

Converts NonZero<u32> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u32>> for NonZero<i64>

Sourceยง

fn from(small: NonZero<u32>) -> NonZero<i64>

Converts NonZero<u32> to NonZero<i64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u32>> for NonZero<u128>

Sourceยง

fn from(small: NonZero<u32>) -> NonZero<u128>

Converts NonZero<u32> to NonZero<u128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u32>> for NonZero<u64>

Sourceยง

fn from(small: NonZero<u32>) -> NonZero<u64>

Converts NonZero<u32> to NonZero<u64> losslessly.

Sourceยง

impl<const LIMBS: usize> From<NonZero<u64>> for NonZero<Uint<LIMBS>>

Sourceยง

fn from(integer: NonZero<u64>) -> NonZero<Uint<LIMBS>>

Converts to this type from the input type.
1.41.0 ยท Sourceยง

impl From<NonZero<u64>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<u64>) -> NonZero<i128>

Converts NonZero<u64> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u64>> for NonZero<u128>

Sourceยง

fn from(small: NonZero<u64>) -> NonZero<u128>

Converts NonZero<u64> to NonZero<u128> losslessly.

Sourceยง

impl From<NonZero<u8>> for NonZero<Limb>

Sourceยง

fn from(integer: NonZero<u8>) -> NonZero<Limb>

Converts to this type from the input type.
Sourceยง

impl<const LIMBS: usize> From<NonZero<u8>> for NonZero<Uint<LIMBS>>

Sourceยง

fn from(integer: NonZero<u8>) -> NonZero<Uint<LIMBS>>

Converts to this type from the input type.
1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<i128>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<i128>

Converts NonZero<u8> to NonZero<i128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<i16>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<i16>

Converts NonZero<u8> to NonZero<i16> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<i32>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<i32>

Converts NonZero<u8> to NonZero<i32> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<i64>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<i64>

Converts NonZero<u8> to NonZero<i64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<isize>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<isize>

Converts NonZero<u8> to NonZero<isize> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<u128>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<u128>

Converts NonZero<u8> to NonZero<u128> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<u16>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<u16>

Converts NonZero<u8> to NonZero<u16> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<u32>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<u32>

Converts NonZero<u8> to NonZero<u32> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<u64>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<u64>

Converts NonZero<u8> to NonZero<u64> losslessly.

1.41.0 ยท Sourceยง

impl From<NonZero<u8>> for NonZero<usize>

Sourceยง

fn from(small: NonZero<u8>) -> NonZero<usize>

Converts NonZero<u8> to NonZero<usize> losslessly.

1.35.0 ยท Sourceยง

impl FromStr for NonZero<i128>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<i128>, <NonZero<i128> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<i16>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<i16>, <NonZero<i16> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<i32>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<i32>, <NonZero<i32> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<i64>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<i64>, <NonZero<i64> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<i8>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<i8>, <NonZero<i8> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<isize>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str( src: &str, ) -> Result<NonZero<isize>, <NonZero<isize> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<u128>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<u128>, <NonZero<u128> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<u16>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<u16>, <NonZero<u16> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<u32>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<u32>, <NonZero<u32> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<u64>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<u64>, <NonZero<u64> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<u8>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(src: &str) -> Result<NonZero<u8>, <NonZero<u8> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.35.0 ยท Sourceยง

impl FromStr for NonZero<usize>

Sourceยง

type Err = ParseIntError

The associated error which can be returned from parsing.
Sourceยง

fn from_str( src: &str, ) -> Result<NonZero<usize>, <NonZero<usize> as FromStr>::Err>

Parses a string s to return a value of this type. Read more
1.28.0 ยท Sourceยง

impl<T> Hash for NonZero<T>

Sourceยง

fn hash<H>(&self, state: &mut H)
where H: Hasher,

Feeds this value into the given Hasher. Read more
1.3.0 ยท Sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Sourceยง

impl IntoBytes for NonZero<i128>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<i16>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<i32>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<i64>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<i8>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<isize>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<u128>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<u16>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<u32>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<u64>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<u8>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl IntoBytes for NonZero<usize>

Sourceยง

fn as_bytes(&self) -> &[u8] โ“˜
where Self: Immutable,

Gets the bytes of this value. Read more
Sourceยง

fn as_mut_bytes(&mut self) -> &mut [u8] โ“˜
where Self: FromBytes,

Gets the bytes of this value mutably. Read more
Sourceยง

fn write_to(&self, dst: &mut [u8]) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to dst. Read more
Sourceยง

fn write_to_prefix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the prefix of dst. Read more
Sourceยง

fn write_to_suffix( &self, dst: &mut [u8], ) -> Result<(), SizeError<&Self, &mut [u8]>>
where Self: Immutable,

Writes a copy of self to the suffix of dst. Read more
Sourceยง

impl KnownLayout for NonZero<i128>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<i16>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<i32>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<i64>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<i8>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<isize>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<u128>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<u16>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<u32>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<u64>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<u8>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
Sourceยง

impl KnownLayout for NonZero<usize>

Sourceยง

type PointerMetadata = ()

The type of metadata stored in a pointer to Self. Read more
1.84.0 ยท Sourceยง

impl<T> LowerExp for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
1.28.0 ยท Sourceยง

impl<T> LowerHex for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
1.71.0 ยท Sourceยง

impl Neg for &NonZero<i128>

Sourceยง

type Output = <NonZero<i128> as Neg>::Output

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> <NonZero<i128> as Neg>::Output

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for &NonZero<i16>

Sourceยง

type Output = <NonZero<i16> as Neg>::Output

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> <NonZero<i16> as Neg>::Output

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for &NonZero<i32>

Sourceยง

type Output = <NonZero<i32> as Neg>::Output

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> <NonZero<i32> as Neg>::Output

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for &NonZero<i64>

Sourceยง

type Output = <NonZero<i64> as Neg>::Output

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> <NonZero<i64> as Neg>::Output

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for &NonZero<i8>

Sourceยง

type Output = <NonZero<i8> as Neg>::Output

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> <NonZero<i8> as Neg>::Output

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for &NonZero<isize>

Sourceยง

type Output = <NonZero<isize> as Neg>::Output

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> <NonZero<isize> as Neg>::Output

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for NonZero<i128>

Sourceยง

type Output = NonZero<i128>

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> NonZero<i128>

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for NonZero<i16>

Sourceยง

type Output = NonZero<i16>

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> NonZero<i16>

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for NonZero<i32>

Sourceยง

type Output = NonZero<i32>

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> NonZero<i32>

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for NonZero<i64>

Sourceยง

type Output = NonZero<i64>

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> NonZero<i64>

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for NonZero<i8>

Sourceยง

type Output = NonZero<i8>

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> NonZero<i8>

Performs the unary - operation. Read more
1.71.0 ยท Sourceยง

impl Neg for NonZero<isize>

Sourceยง

type Output = NonZero<isize>

The resulting type after applying the - operator.
Sourceยง

fn neg(self) -> NonZero<isize>

Performs the unary - operation. Read more
1.28.0 ยท Sourceยง

impl<T> Octal for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
1.28.0 ยท Sourceยง

impl<T> Ord for NonZero<T>

Sourceยง

fn cmp(&self, other: &NonZero<T>) -> Ordering

This method returns an Ordering between self and other. Read more
Sourceยง

fn max(self, other: NonZero<T>) -> NonZero<T>

Compares and returns the maximum of two values. Read more
Sourceยง

fn min(self, other: NonZero<T>) -> NonZero<T>

Compares and returns the minimum of two values. Read more
Sourceยง

fn clamp(self, min: NonZero<T>, max: NonZero<T>) -> NonZero<T>

Restrict a value to a certain interval. Read more
1.28.0 ยท Sourceยง

impl<T> PartialEq for NonZero<T>

Sourceยง

fn eq(&self, other: &NonZero<T>) -> bool

Tests for self and other values to be equal, and is used by ==.
Sourceยง

fn ne(&self, other: &NonZero<T>) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
1.28.0 ยท Sourceยง

impl<T> PartialOrd for NonZero<T>

Sourceยง

fn partial_cmp(&self, other: &NonZero<T>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
Sourceยง

fn lt(&self, other: &NonZero<T>) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
Sourceยง

fn le(&self, other: &NonZero<T>) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
Sourceยง

fn gt(&self, other: &NonZero<T>) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
Sourceยง

fn ge(&self, other: &NonZero<T>) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
1.51.0 ยท Sourceยง

impl Rem<NonZero<u128>> for u128

Sourceยง

fn rem(self, other: NonZero<u128>) -> u128

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

Sourceยง

type Output = u128

The resulting type after applying the % operator.
1.51.0 ยท Sourceยง

impl Rem<NonZero<u16>> for u16

Sourceยง

fn rem(self, other: NonZero<u16>) -> u16

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

Sourceยง

type Output = u16

The resulting type after applying the % operator.
1.51.0 ยท Sourceยง

impl Rem<NonZero<u32>> for u32

Sourceยง

fn rem(self, other: NonZero<u32>) -> u32

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

Sourceยง

type Output = u32

The resulting type after applying the % operator.
1.51.0 ยท Sourceยง

impl Rem<NonZero<u64>> for u64

Sourceยง

fn rem(self, other: NonZero<u64>) -> u64

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

Sourceยง

type Output = u64

The resulting type after applying the % operator.
1.51.0 ยท Sourceยง

impl Rem<NonZero<u8>> for u8

Sourceยง

fn rem(self, other: NonZero<u8>) -> u8

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

Sourceยง

type Output = u8

The resulting type after applying the % operator.
1.51.0 ยท Sourceยง

impl Rem<NonZero<usize>> for usize

Sourceยง

fn rem(self, other: NonZero<usize>) -> usize

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

Sourceยง

type Output = usize

The resulting type after applying the % operator.
1.79.0 ยท Sourceยง

impl RemAssign<NonZero<u128>> for u128

Sourceยง

fn rem_assign(&mut self, other: NonZero<u128>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

1.79.0 ยท Sourceยง

impl RemAssign<NonZero<u16>> for u16

Sourceยง

fn rem_assign(&mut self, other: NonZero<u16>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

1.79.0 ยท Sourceยง

impl RemAssign<NonZero<u32>> for u32

Sourceยง

fn rem_assign(&mut self, other: NonZero<u32>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

1.79.0 ยท Sourceยง

impl RemAssign<NonZero<u64>> for u64

Sourceยง

fn rem_assign(&mut self, other: NonZero<u64>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

1.79.0 ยท Sourceยง

impl RemAssign<NonZero<u8>> for u8

Sourceยง

fn rem_assign(&mut self, other: NonZero<u8>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

1.79.0 ยท Sourceยง

impl RemAssign<NonZero<usize>> for usize

Sourceยง

fn rem_assign(&mut self, other: NonZero<usize>)

This operation satisfies n % d == n - (n / d) * d, and cannot panic.

Sourceยง

impl Serialize for NonZero<i128>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<i16>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<i32>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<i64>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<i8>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<isize>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<u128>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<u16>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<u32>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<u64>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<u8>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl Serialize for NonZero<usize>

Sourceยง

fn serialize<S>( &self, serializer: S, ) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl SizeOf for NonZero<i128>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<i16>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<i32>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<i64>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<i8>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<isize>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<u128>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<u16>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<u32>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<u64>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<u8>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
Sourceยง

impl SizeOf for NonZero<usize>

Sourceยง

fn size_of_children(&self, _context: &mut Context)

Gets the size of all โ€œchildrenโ€ owned by this value, not including the size of the value itself. Read more
Sourceยง

fn size_of(&self) -> TotalSize

Gets the total size of the current value
Sourceยง

fn size_of_with_context(&self, context: &mut Context)

Adds the size of the current value to the given Context, including both the size of the value itself and all of its children
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<i32>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<i64>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<i64>, <NonZero<i64> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<i64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<u128>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i128>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<i128>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<i128>>>::Error>

Attempts to convert NonZero<i128> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i16>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<i16>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<i16>>>::Error>

Attempts to convert NonZero<i16> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i16>> for NonZero<u128>

Sourceยง

fn try_from( value: NonZero<i16>, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<NonZero<i16>>>::Error>

Attempts to convert NonZero<i16> to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i16>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<i16>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<i16>>>::Error>

Attempts to convert NonZero<i16> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i16>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<i16>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<i16>>>::Error>

Attempts to convert NonZero<i16> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i16>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<i16>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<i16>>>::Error>

Attempts to convert NonZero<i16> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i16>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<i16>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<i16>>>::Error>

Attempts to convert NonZero<i16> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i16>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<i16>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<i16>>>::Error>

Attempts to convert NonZero<i16> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<u128>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i32>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<i32>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<i32>>>::Error>

Attempts to convert NonZero<i32> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<i32>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<u128>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i64>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<i64>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<i64>>>::Error>

Attempts to convert NonZero<i64> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i8>> for NonZero<u128>

Sourceยง

fn try_from( value: NonZero<i8>, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<NonZero<i8>>>::Error>

Attempts to convert NonZero<i8> to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i8>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<i8>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<i8>>>::Error>

Attempts to convert NonZero<i8> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i8>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<i8>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<i8>>>::Error>

Attempts to convert NonZero<i8> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i8>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<i8>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<i8>>>::Error>

Attempts to convert NonZero<i8> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i8>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<i8>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<i8>>>::Error>

Attempts to convert NonZero<i8> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<i8>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<i8>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<i8>>>::Error>

Attempts to convert NonZero<i8> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<i128>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<i128>, <NonZero<i128> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<i128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<i32>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<i64>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<i64>, <NonZero<i64> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<i64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<u128>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<isize>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<isize>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<isize>>>::Error>

Attempts to convert NonZero<isize> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<i128>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<i128>, <NonZero<i128> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<i128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<i32>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<i64>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<i64>, <NonZero<i64> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<i64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u128>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<u128>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<u128>>>::Error>

Attempts to convert NonZero<u128> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u16>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<u16>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<u16>>>::Error>

Attempts to convert NonZero<u16> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u16>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<u16>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<u16>>>::Error>

Attempts to convert NonZero<u16> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u16>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<u16>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<u16>>>::Error>

Attempts to convert NonZero<u16> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u16>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<u16>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<u16>>>::Error>

Attempts to convert NonZero<u16> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u32>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<u32>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<u32>>>::Error>

Attempts to convert NonZero<u32> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u32>> for NonZero<i32>

Sourceยง

fn try_from( value: NonZero<u32>, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<NonZero<u32>>>::Error>

Attempts to convert NonZero<u32> to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u32>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<u32>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<u32>>>::Error>

Attempts to convert NonZero<u32> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u32>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<u32>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<u32>>>::Error>

Attempts to convert NonZero<u32> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u32>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<u32>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<u32>>>::Error>

Attempts to convert NonZero<u32> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u32>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<u32>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<u32>>>::Error>

Attempts to convert NonZero<u32> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u32>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<u32>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<u32>>>::Error>

Attempts to convert NonZero<u32> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<i32>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<i64>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<i64>, <NonZero<i64> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<i64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u64>> for NonZero<usize>

Sourceยง

fn try_from( value: NonZero<u64>, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<NonZero<u64>>>::Error>

Attempts to convert NonZero<u64> to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<u8>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<u8>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<u8>>>::Error>

Attempts to convert NonZero<u8> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
Sourceยง

impl TryFrom<NonZero<usize>> for Alignment

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
Sourceยง

fn try_from( align: NonZero<usize>, ) -> Result<Alignment, <Alignment as TryFrom<NonZero<usize>>>::Error>

Performs the conversion.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<i128>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<i128>, <NonZero<i128> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<i128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<i16>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<i32>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<i64>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<i64>, <NonZero<i64> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<i64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<i8>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<isize>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<u128>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<u16>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<u32>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<u64>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.49.0 ยท Sourceยง

impl TryFrom<NonZero<usize>> for NonZero<u8>

Sourceยง

fn try_from( value: NonZero<usize>, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<NonZero<usize>>>::Error>

Attempts to convert NonZero<usize> to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<i128> for NonZero<i128>

Sourceยง

fn try_from( value: i128, ) -> Result<NonZero<i128>, <NonZero<i128> as TryFrom<i128>>::Error>

Attempts to convert i128 to NonZero<i128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<i16> for NonZero<i16>

Sourceยง

fn try_from( value: i16, ) -> Result<NonZero<i16>, <NonZero<i16> as TryFrom<i16>>::Error>

Attempts to convert i16 to NonZero<i16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<i32> for NonZero<i32>

Sourceยง

fn try_from( value: i32, ) -> Result<NonZero<i32>, <NonZero<i32> as TryFrom<i32>>::Error>

Attempts to convert i32 to NonZero<i32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<i64> for NonZero<i64>

Sourceยง

fn try_from( value: i64, ) -> Result<NonZero<i64>, <NonZero<i64> as TryFrom<i64>>::Error>

Attempts to convert i64 to NonZero<i64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<i8> for NonZero<i8>

Sourceยง

fn try_from( value: i8, ) -> Result<NonZero<i8>, <NonZero<i8> as TryFrom<i8>>::Error>

Attempts to convert i8 to NonZero<i8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<isize> for NonZero<isize>

Sourceยง

fn try_from( value: isize, ) -> Result<NonZero<isize>, <NonZero<isize> as TryFrom<isize>>::Error>

Attempts to convert isize to NonZero<isize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<u128> for NonZero<u128>

Sourceยง

fn try_from( value: u128, ) -> Result<NonZero<u128>, <NonZero<u128> as TryFrom<u128>>::Error>

Attempts to convert u128 to NonZero<u128>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<u16> for NonZero<u16>

Sourceยง

fn try_from( value: u16, ) -> Result<NonZero<u16>, <NonZero<u16> as TryFrom<u16>>::Error>

Attempts to convert u16 to NonZero<u16>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<u32> for NonZero<u32>

Sourceยง

fn try_from( value: u32, ) -> Result<NonZero<u32>, <NonZero<u32> as TryFrom<u32>>::Error>

Attempts to convert u32 to NonZero<u32>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<u64> for NonZero<u64>

Sourceยง

fn try_from( value: u64, ) -> Result<NonZero<u64>, <NonZero<u64> as TryFrom<u64>>::Error>

Attempts to convert u64 to NonZero<u64>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<u8> for NonZero<u8>

Sourceยง

fn try_from( value: u8, ) -> Result<NonZero<u8>, <NonZero<u8> as TryFrom<u8>>::Error>

Attempts to convert u8 to NonZero<u8>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
1.46.0 ยท Sourceยง

impl TryFrom<usize> for NonZero<usize>

Sourceยง

fn try_from( value: usize, ) -> Result<NonZero<usize>, <NonZero<usize> as TryFrom<usize>>::Error>

Attempts to convert usize to NonZero<usize>.

Sourceยง

type Error = TryFromIntError

The type returned in the event of a conversion error.
Sourceยง

impl TryFromBytes for NonZero<i128>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<i16>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<i32>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<i64>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<i8>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<isize>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<u128>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<u16>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<u32>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<u64>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<u8>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
Sourceยง

impl TryFromBytes for NonZero<usize>

Sourceยง

fn try_ref_from_bytes( source: &[u8], ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the given source as a &Self. Read more
Sourceยง

fn try_ref_from_prefix( source: &[u8], ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the prefix of the given source as a &Self. Read more
Sourceยง

fn try_ref_from_suffix( source: &[u8], ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout + Immutable,

Attempts to interpret the suffix of the given source as a &Self. Read more
Sourceยง

fn try_mut_from_bytes( bytes: &mut [u8], ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the given source as a &mut Self without copying. Read more
Sourceยง

fn try_mut_from_prefix( source: &mut [u8], ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self. Read more
Sourceยง

fn try_mut_from_suffix( source: &mut [u8], ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self. Read more
Sourceยง

fn try_ref_from_bytes_with_elems( source: &[u8], count: usize, ) -> Result<&Self, ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_prefix_with_elems( source: &[u8], count: usize, ) -> Result<(&Self, &[u8]), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the prefix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_ref_from_suffix_with_elems( source: &[u8], count: usize, ) -> Result<(&[u8], &Self), ConvertError<AlignmentError<&[u8], Self>, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + Immutable,

Attempts to interpret the suffix of the given source as a &Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_bytes_with_elems( source: &mut [u8], count: usize, ) -> Result<&mut Self, ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_prefix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut Self, &mut [u8]), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the prefix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_mut_from_suffix_with_elems( source: &mut [u8], count: usize, ) -> Result<(&mut [u8], &mut Self), ConvertError<AlignmentError<&mut [u8], Self>, SizeError<&mut [u8], Self>, ValidityError<&mut [u8], Self>>>
where Self: KnownLayout<PointerMetadata = usize> + IntoBytes,

Attempts to interpret the suffix of the given source as a &mut Self with a DST length equal to count. Read more
Sourceยง

fn try_read_from_bytes( source: &[u8], ) -> Result<Self, ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read the given source as a Self. Read more
Sourceยง

fn try_read_from_prefix( source: &[u8], ) -> Result<(Self, &[u8]), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the prefix of the given source. Read more
Sourceยง

fn try_read_from_suffix( source: &[u8], ) -> Result<(&[u8], Self), ConvertError<Infallible, SizeError<&[u8], Self>, ValidityError<&[u8], Self>>>
where Self: Sized,

Attempts to read a Self from the suffix of the given source. Read more
1.84.0 ยท Sourceยง

impl<T> UpperExp for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
1.28.0 ยท Sourceยง

impl<T> UpperHex for NonZero<T>

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Sourceยง

impl Zeroize for NonZero<i128>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<i16>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<i32>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<i64>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<i8>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<isize>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<u128>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<u16>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<u32>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<u64>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<u8>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
Sourceยง

impl Zeroize for NonZero<usize>

Sourceยง

fn zeroize(&mut self)

Zero out this object from memory using Rust intrinsics which ensure the zeroization operation is not โ€œoptimized awayโ€ by the compiler.
1.28.0 ยท Sourceยง

impl<T> Copy for NonZero<T>

1.28.0 ยท Sourceยง

impl<T> Eq for NonZero<T>
where T: ZeroablePrimitive + Eq,

1.28.0 ยท Sourceยง

impl<T> Freeze for NonZero<T>

Sourceยง

impl Immutable for NonZero<i128>

Sourceยง

impl Immutable for NonZero<i16>

Sourceยง

impl Immutable for NonZero<i32>

Sourceยง

impl Immutable for NonZero<i64>

Sourceยง

impl Immutable for NonZero<i8>

Sourceยง

impl Immutable for NonZero<isize>

Sourceยง

impl Immutable for NonZero<u128>

Sourceยง

impl Immutable for NonZero<u16>

Sourceยง

impl Immutable for NonZero<u32>

Sourceยง

impl Immutable for NonZero<u64>

Sourceยง

impl Immutable for NonZero<u8>

Sourceยง

impl Immutable for NonZero<usize>

1.28.0 ยท Sourceยง

impl<T> RefUnwindSafe for NonZero<T>

1.28.0 ยท Sourceยง

impl<T> Send for NonZero<T>

Sourceยง

impl<T> StructuralPartialEq for NonZero<T>

1.28.0 ยท Sourceยง

impl<T> Sync for NonZero<T>

Sourceยง

impl Unaligned for NonZero<i8>

Sourceยง

impl Unaligned for NonZero<u8>

1.28.0 ยท Sourceยง

impl<T> Unpin for NonZero<T>

1.28.0 ยท Sourceยง

impl<T> UnwindSafe for NonZero<T>

Sourceยง

impl<T> UseCloned for NonZero<T>

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> 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<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

Sourceยง

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
Sourceยง

impl<T> Conv for T

Sourceยง

fn conv<T>(self) -> T
where Self: Into<T>,

Converts self into T using Into<T>. Read more
Sourceยง

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Sourceยง

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Sourceยง

impl<T> FmtForward for T

Sourceยง

fn fmt_binary(self) -> FmtBinary<Self>
where Self: Binary,

Causes self to use its Binary implementation when Debug-formatted.
Sourceยง

fn fmt_display(self) -> FmtDisplay<Self>
where Self: Display,

Causes self to use its Display implementation when Debug-formatted.
Sourceยง

fn fmt_lower_exp(self) -> FmtLowerExp<Self>
where Self: LowerExp,

Causes self to use its LowerExp implementation when Debug-formatted.
Sourceยง

fn fmt_lower_hex(self) -> FmtLowerHex<Self>
where Self: LowerHex,

Causes self to use its LowerHex implementation when Debug-formatted.
Sourceยง

fn fmt_octal(self) -> FmtOctal<Self>
where Self: Octal,

Causes self to use its Octal implementation when Debug-formatted.
Sourceยง

fn fmt_pointer(self) -> FmtPointer<Self>
where Self: Pointer,

Causes self to use its Pointer implementation when Debug-formatted.
Sourceยง

fn fmt_upper_exp(self) -> FmtUpperExp<Self>
where Self: UpperExp,

Causes self to use its UpperExp implementation when Debug-formatted.
Sourceยง

fn fmt_upper_hex(self) -> FmtUpperHex<Self>
where Self: UpperHex,

Causes self to use its UpperHex implementation when Debug-formatted.
Sourceยง

fn fmt_list(self) -> FmtList<Self>
where &'a Self: for<'a> IntoIterator,

Formats each item in a sequence. Read more
Sourceยง

impl<T> From<T> for T

Sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

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> Pipe for T
where T: ?Sized,

Sourceยง

fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
where Self: Sized,

Pipes by value. This is generally the method you want to use. Read more
Sourceยง

fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R
where R: 'a,

Borrows self and passes that borrow into the pipe function. Read more
Sourceยง

fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R
where R: 'a,

Mutably borrows self and passes that borrow into the pipe function. Read more
Sourceยง

fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
where Self: Borrow<B>, B: 'a + ?Sized, R: 'a,

Borrows self, then passes self.borrow() into the pipe function. Read more
Sourceยง

fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
where Self: BorrowMut<B>, B: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.borrow_mut() into the pipe function. Read more
Sourceยง

fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
where Self: AsRef<U>, U: 'a + ?Sized, R: 'a,

Borrows self, then passes self.as_ref() into the pipe function.
Sourceยง

fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
where Self: AsMut<U>, U: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.as_mut() into the pipe function.
Sourceยง

fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
where Self: Deref<Target = T>, T: 'a + ?Sized, R: 'a,

Borrows self, then passes self.deref() into the pipe function.
Sourceยง

fn pipe_deref_mut<'a, T, R>( &'a mut self, func: impl FnOnce(&'a mut T) -> R, ) -> R
where Self: DerefMut<Target = T> + Deref, T: 'a + ?Sized, R: 'a,

Mutably borrows self, then passes self.deref_mut() into the pipe function.
Sourceยง

impl<T> Same for T

Sourceยง

type Output = T

Should always be Self
Sourceยง

impl<T> Tap for T

Sourceยง

fn tap(self, func: impl FnOnce(&Self)) -> Self

Immutable access to a value. Read more
Sourceยง

fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self

Mutable access to a value. Read more
Sourceยง

fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Immutable access to the Borrow<B> of a value. Read more
Sourceยง

fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Mutable access to the BorrowMut<B> of a value. Read more
Sourceยง

fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Immutable access to the AsRef<R> view of a value. Read more
Sourceยง

fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Mutable access to the AsMut<R> view of a value. Read more
Sourceยง

fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Immutable access to the Deref::Target of a value. Read more
Sourceยง

fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Mutable access to the Deref::Target of a value. Read more
Sourceยง

fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self

Calls .tap() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self

Calls .tap_mut() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
where Self: Borrow<B>, B: ?Sized,

Calls .tap_borrow() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
where Self: BorrowMut<B>, B: ?Sized,

Calls .tap_borrow_mut() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
where Self: AsRef<R>, R: ?Sized,

Calls .tap_ref() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
where Self: AsMut<R>, R: ?Sized,

Calls .tap_ref_mut() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
where Self: Deref<Target = T>, T: ?Sized,

Calls .tap_deref() only in debug builds, and is erased in release builds.
Sourceยง

fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self
where Self: DerefMut<Target = T> + Deref, T: ?Sized,

Calls .tap_deref_mut() only in debug builds, and is erased in release builds.
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> ToString for T
where T: Display + ?Sized,

Sourceยง

fn to_string(&self) -> String

Converts the given value to a String. Read more
Sourceยง

impl<T> TryConv for T

Sourceยง

fn try_conv<T>(self) -> Result<T, Self::Error>
where Self: TryInto<T>,

Attempts to convert self into T using TryInto<T>. 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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,