NonZero
NonZero (0이 아님이 보장된 값 구조체)
0이 아니라고 알려진 값을 나타내는 구조체예요. 일부 메모리 레이아웃 최적화를 가능하게 해요.
출처: Rust 공식 문서
본문
이 타입은 0이 아니라고 알려진 값을 나타내요. 일부 메모리 레이아웃 최적화를 가능하게 해요. 예를 들어 Option<NonZero<u32>>는 u32와 같은 크기예요:
use core::{num::NonZero};
assert_eq!(size_of::<Option<NonZero<u32>>>(), size_of::<u32>());
pub struct NonZero<T>(/* private fields */)
where
T: ZeroablePrimitive;