[−][src]Trait core::marker::Unsize
Types that can be "unsized" to a dynamically-sized type.
For example, the sized array type [i8; 2] implements Unsize<[i8]> and
Unsize<dyn fmt::Debug>.
All implementations of Unsize are provided automatically by the compiler.
Unsize is implemented for:
[T; N]isUnsize<[T]>TisUnsize<dyn Trait>whenT: TraitFoo<..., T, ...>isUnsize<Foo<..., U, ...>>if:T: Unsize<U>- Foo is a struct
- Only the last field of
Foohas a type involvingT Tis not part of the type of any other fieldsBar<T>: Unsize<Bar<U>>, if the last field ofFoohas typeBar<T>
Unsize is used along with ops::CoerceUnsized to allow
"user-defined" containers such as Rc to contain dynamically-sized
types. See the DST coercion RFC and the nomicon entry on coercion
for more details.