Unsize
Unsize (동적 크기 타입으로 축소 가능한 타입)
동적 크기 타입(DST)으로 "unsize"될 수 있는 타입을 위한 마커 트레이트예요.
출처: Rust 공식 문서
본문
예를 들어 크기가 고정된 배열 타입 [i8; 2]는 Unsize<[i8]>와 Unsize<dyn Debug>를 구현해요. Unsize의 모든 구현은 컴파일러가 자동으로 제공해요. 구현들은 다음과 같아요:
- 배열
[T; N]은Unsize<[T]>를 구현해요. - 타입은 다음 조건이 모두 충족되면
Unsize<dyn Trait>을 구현해요: 타입이Trait을 구현하고,Trait이 dyn 호환 가능하며, 타입이 sized이고, 타입이'a보다 오래 살아야 함. - 트레이트 객체
dyn TraitA + AutoA... + 'a는 다음 조건이 모두 충족되면Unsize<dyn TraitB + AutoB... + 'b>를 구현해요:TraitB가TraitA의 슈퍼트레이트이고,AutoB...가AutoA...의 부분 집합이며,'a가'b보다 오래 살아야 함.
pub trait Unsize<T>
where
T: ?Sized,
{ }