NonNull — 널이 아님을 보장하는 원시 포인터
NonNull — 널이 아님을 보장하는 원시 포인터
NonNull<T>는 널(null)이 아님을 타입 레벨로 보장하는 원시 포인터 래퍼예요. FFI나 저수준 코드에서 "항상 유효하거나 최소한 널이 아닌" 포인터를 표현할 때 써요.
출처: Rust 공식 문서
본문
pub struct NonNull<T>
where T: ?Sized,
{ /* private fields */ }
*const T/*mut T와 다르게, 이 타입의 값은 절대 널이 아니라는 불변식(invariant)이 보장돼요. Copy이며, 공유 참조와 비슷하게 &T와 &mut T 사이에서 as_ptr() 등으로 변환할 수 있어요. ?Sized라서 트레이트 객체에도 쓸 수 있어요.