DST

DST는 값 자체가 아니라 메타데이터가 붙은 포인터 뒤에서 다룬다

str, [T], dyn Trait처럼 크기를 컴파일 시점에 모르는 타입은 참조나 Box 같은 포인터와 함께 사용한다.

str길이 메타데이터

&str

[T]길이 메타데이터

&[T]

dyn Traitvtable 메타데이터

&dyn Trait / Box<dyn Trait>

구분의미판단
스택 값크기 필요DST 단독 불가
fat pointer주소 + 메타데이터동적 크기 정보 보관
Box<dyn Trait>힙 값 + vtable소유 가능한 trait object
Sized bound기본 제네릭 제약?Sized로 완화 가능

핵심 DST는 “크기 없음”이 아니라 “포인터가 추가 정보를 함께 들고 다닌다”이다.