Trait NonRecursive

Source
pub trait NonRecursive { }
Expand description

Indicates that the speed of cloning a type does not recursively depend on any generics, opting the type into several blanket implementations.

As examples, u8 and Rc<T> implement this trait, while Option<T> does not.

A NonRecursive type need only implement a cloning operation at the fastest applicable speed, and blanket implementations handle the rest. These blanket implementations would interfere with, for example, an attempt to pass through the speed of cloning T to the speed of cloning Option<T>.

Implementations on Foreign Types§

Source§

impl NonRecursive for Ordering

Source§

impl NonRecursive for Infallible

Source§

impl NonRecursive for Ordering

Source§

impl NonRecursive for bool

Source§

impl NonRecursive for char

Source§

impl NonRecursive for f32

Source§

impl NonRecursive for f64

Source§

impl NonRecursive for i8

Source§

impl NonRecursive for i16

Source§

impl NonRecursive for i32

Source§

impl NonRecursive for i64

Source§

impl NonRecursive for i128

Source§

impl NonRecursive for isize

Source§

impl NonRecursive for u8

Source§

impl NonRecursive for u16

Source§

impl NonRecursive for u32

Source§

impl NonRecursive for u64

Source§

impl NonRecursive for u128

Source§

impl NonRecursive for ()

Source§

impl NonRecursive for usize

Source§

impl NonRecursive for String

Source§

impl NonRecursive for Layout

Source§

impl NonRecursive for TypeId

Source§

impl NonRecursive for PhantomPinned

Source§

impl NonRecursive for NonZero<i8>

Source§

impl NonRecursive for NonZero<i16>

Source§

impl NonRecursive for NonZero<i32>

Source§

impl NonRecursive for NonZero<i64>

Source§

impl NonRecursive for NonZero<i128>

Source§

impl NonRecursive for NonZero<isize>

Source§

impl NonRecursive for NonZero<u8>

Source§

impl NonRecursive for NonZero<u16>

Source§

impl NonRecursive for NonZero<u32>

Source§

impl NonRecursive for NonZero<u64>

Source§

impl NonRecursive for NonZero<u128>

Source§

impl NonRecursive for NonZero<usize>

Source§

impl NonRecursive for RangeFull

Source§

impl NonRecursive for AtomicBool

Source§

impl NonRecursive for AtomicI8

Source§

impl NonRecursive for AtomicI16

Source§

impl NonRecursive for AtomicI32

Source§

impl NonRecursive for AtomicI64

Source§

impl NonRecursive for AtomicIsize

Source§

impl NonRecursive for AtomicU8

Source§

impl NonRecursive for AtomicU16

Source§

impl NonRecursive for AtomicU32

Source§

impl NonRecursive for AtomicU64

Source§

impl NonRecursive for AtomicUsize

Source§

impl NonRecursive for Duration

Source§

impl NonRecursive for Path

Source§

impl NonRecursive for PathBuf

Source§

impl NonRecursive for ThreadId

Source§

impl NonRecursive for Instant

Source§

impl<R> NonRecursive for fn() -> R

Source§

impl<R, T1> NonRecursive for fn(T1) -> R

Source§

impl<R, T1, T2> NonRecursive for fn(T1, T2) -> R

Source§

impl<R, T1, T2, T3> NonRecursive for fn(T1, T2, T3) -> R

Source§

impl<R, T1, T2, T3, T4> NonRecursive for fn(T1, T2, T3, T4) -> R

Source§

impl<R, T1, T2, T3, T4, T5> NonRecursive for fn(T1, T2, T3, T4, T5) -> R

Source§

impl<R, T1, T2, T3, T4, T5, T6> NonRecursive for fn(T1, T2, T3, T4, T5, T6) -> R

Source§

impl<R, T1, T2, T3, T4, T5, T6, T7> NonRecursive for fn(T1, T2, T3, T4, T5, T6, T7) -> R

Source§

impl<R, T1, T2, T3, T4, T5, T6, T7, T8> NonRecursive for fn(T1, T2, T3, T4, T5, T6, T7, T8) -> R

Source§

impl<R, T1, T2, T3, T4, T5, T6, T7, T8, T9> NonRecursive for fn(T1, T2, T3, T4, T5, T6, T7, T8, T9) -> R

Source§

impl<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> NonRecursive for fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) -> R

Source§

impl<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> NonRecursive for fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11) -> R

Source§

impl<R, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> NonRecursive for fn(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12) -> R

Source§

impl<T> NonRecursive for Empty<T>

Source§

impl<T> NonRecursive for Discriminant<T>

Source§

impl<T> NonRecursive for AtomicPtr<T>

Source§

impl<T: ?Sized> NonRecursive for *const T

Source§

impl<T: ?Sized> NonRecursive for *mut T

Source§

impl<T: ?Sized> NonRecursive for &T

Source§

impl<T: ?Sized> NonRecursive for PhantomData<T>

Source§

impl<T: ?Sized> NonRecursive for NonNull<T>

Implementors§