Dummy

Trait Dummy 

Source
pub trait Dummy {
    // Required method
    unsafe fn dummy() -> Self;
}
Expand description

A helper trait for constructing placeholder sets for use in std::mem::replace.

These don’t necessarily have to correspond to bona-fide sets and can potentially produce invalid sets. For this reason this function can be unsafe since it can generate collections that don’t uphold their invariants for the sake of avoiding allocations.

Required Methods§

Source

unsafe fn dummy() -> Self

Constructs a potentially invalid instance of a type.

This function is intended to be used in conjunction with std::mem::replace to avoid allocations for types whose Default implementations can cause allocations or other potentially expensive computations. As such dummy types may be invalid and should not be used other than as placeholders to avoid undefined behaviour.

§Safety

Instances created with this function can cause undefinied behaviour if used other than as placeholders for real values for functions like std::mem::replace.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<S: Dummy> Dummy for Box<S>

Source§

unsafe fn dummy() -> Self

Source§

impl<S: Dummy, T: Dummy> Dummy for (S, T)

Source§

unsafe fn dummy() -> Self

Source§

impl<T> Dummy for &[T]

Source§

unsafe fn dummy() -> Self

Source§

impl<T> Dummy for &mut [T]

Source§

unsafe fn dummy() -> Self

Source§

impl<T> Dummy for Vec<T>

Source§

unsafe fn dummy() -> Self

Source§

impl<T> Dummy for Range<T>
where T: Default,

Source§

unsafe fn dummy() -> Self

Source§

impl<T> Dummy for RangeTo<T>
where T: Default,

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 1]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 2]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 3]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 4]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 5]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 6]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 7]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 8]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 9]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 10]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 11]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 12]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 13]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 14]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 15]

Source§

unsafe fn dummy() -> Self

Source§

impl<T: Dummy + Copy> Dummy for [T; 16]

Source§

unsafe fn dummy() -> Self

Implementors§

Source§

impl<O: Dummy> Dummy for ClumpedOffsets<O>

A dummy set of offsets will not allocate, but the resulting type does not correspond to valid offsets.

Source§

impl<O: Dummy> Dummy for Offsets<O>

Source§

impl<S: Dummy, I> Dummy for Subset<S, I>

Source§

impl<S: Dummy, I: Dummy> Dummy for Select<S, I>

Source§

impl<S: Dummy, N: Default> Dummy for UniChunked<S, N>

Source§

impl<S: Dummy, O: Dummy> Dummy for Chunked<S, O>

Source§

impl<S: Dummy, T: Dummy, I: Dummy> Dummy for Sparse<S, T, I>