pub trait Unsize<T> where T: ?Sized { }
Types that can be "unsized" to a dynamically-sized type.
For example, the sized array type [i8; 2] implements Unsize<[i8]> and Unsize<fmt::Debug>.
All implementations of Unsize are provided automatically by the compiler.
Unsize is implemented for:
[T; N] is Unsize<[T]>
T is Unsize<Trait> when T: Trait
Foo<..., T, ...> is Unsize<Foo<..., U, ...>> if: T: Unsize<U>Foo has a type involving T
T is not part of the type of any other fieldsBar<T>: Unsize<Bar<U>>, if the last field of Foo has type Bar<T>
Unsize is used along with ops::CoerceUnsized to allow "user-defined" containers such as rc::Rc to contain dynamically-sized types. See the DST coercion RFC and [the nomicon entry on coercion][nomicon-coerce] for more details.
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/marker/trait.Unsize.html