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>를 구현해요: TraitBTraitA의 슈퍼트레이트이고, AutoB...AutoA...의 부분 집합이며, 'a'b보다 오래 살아야 함.
pub trait Unsize<T>
where
    T: ?Sized,
{ }

더 알아보기 (Learn more)

Rust 공식 문서