Skip to main content

ErasableGeneric

Trait ErasableGeneric 

Source
pub unsafe trait ErasableGeneric {
    type Repr: 'static;
}
Expand description

Marker for types whose generic parameters erase to one stable runtime representation.

§Safety

Implementors must have the same runtime representation as Repr.

Required Associated Types§

Source

type Repr: 'static

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl ErasableGeneric for &str

Source§

type Repr = &'static str

Source§

impl ErasableGeneric for bool

Source§

impl ErasableGeneric for char

Source§

impl ErasableGeneric for f32

Source§

impl ErasableGeneric for f64

Source§

impl ErasableGeneric for i8

Source§

impl ErasableGeneric for i16

Source§

impl ErasableGeneric for i32

Source§

impl ErasableGeneric for i64

Source§

impl ErasableGeneric for i128

Source§

impl ErasableGeneric for isize

Source§

impl ErasableGeneric for u8

Source§

impl ErasableGeneric for u16

Source§

impl ErasableGeneric for u32

Source§

impl ErasableGeneric for u64

Source§

impl ErasableGeneric for u128

Source§

impl ErasableGeneric for ()

Source§

impl ErasableGeneric for usize

Source§

impl<'a, R> ErasableGeneric for &'a (dyn Fn() -> R + 'a)
where R: ErasableGeneric,

Source§

type Repr = &'static dyn Fn() -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R> ErasableGeneric for &'a (dyn FnMut() -> R + 'a)
where R: ErasableGeneric,

Source§

type Repr = &'static dyn FnMut() -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R> ErasableGeneric for &'a mut (dyn Fn() -> R + 'a)
where R: ErasableGeneric,

Source§

type Repr = &'static mut dyn Fn() -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R> ErasableGeneric for &'a mut (dyn FnMut() -> R + 'a)
where R: ErasableGeneric,

Source§

type Repr = &'static mut dyn FnMut() -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1> ErasableGeneric for &'a (dyn Fn(A1) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1> ErasableGeneric for &'a (dyn FnMut(A1) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1> ErasableGeneric for &'a mut (dyn Fn(A1) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1> ErasableGeneric for &'a mut (dyn FnMut(A1) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2> ErasableGeneric for &'a (dyn Fn(A1, A2) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2> ErasableGeneric for &'a (dyn FnMut(A1, A2) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2> ErasableGeneric for &'a mut (dyn Fn(A1, A2) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2> ErasableGeneric for &'a mut (dyn FnMut(A1, A2) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3> ErasableGeneric for &'a (dyn Fn(A1, A2, A3) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3> ErasableGeneric for &'a (dyn FnMut(A1, A2, A3) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3> ErasableGeneric for &'a mut (dyn Fn(A1, A2, A3) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3> ErasableGeneric for &'a mut (dyn FnMut(A1, A2, A3) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4> ErasableGeneric for &'a (dyn Fn(A1, A2, A3, A4) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4> ErasableGeneric for &'a (dyn FnMut(A1, A2, A3, A4) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4> ErasableGeneric for &'a mut (dyn Fn(A1, A2, A3, A4) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4> ErasableGeneric for &'a mut (dyn FnMut(A1, A2, A3, A4) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5> ErasableGeneric for &'a (dyn Fn(A1, A2, A3, A4, A5) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5> ErasableGeneric for &'a (dyn FnMut(A1, A2, A3, A4, A5) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5> ErasableGeneric for &'a mut (dyn Fn(A1, A2, A3, A4, A5) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5> ErasableGeneric for &'a mut (dyn FnMut(A1, A2, A3, A4, A5) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6> ErasableGeneric for &'a (dyn Fn(A1, A2, A3, A4, A5, A6) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6> ErasableGeneric for &'a (dyn FnMut(A1, A2, A3, A4, A5, A6) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6> ErasableGeneric for &'a mut (dyn Fn(A1, A2, A3, A4, A5, A6) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6> ErasableGeneric for &'a mut (dyn FnMut(A1, A2, A3, A4, A5, A6) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7> ErasableGeneric for &'a (dyn Fn(A1, A2, A3, A4, A5, A6, A7) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7> ErasableGeneric for &'a (dyn FnMut(A1, A2, A3, A4, A5, A6, A7) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7> ErasableGeneric for &'a mut (dyn Fn(A1, A2, A3, A4, A5, A6, A7) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7> ErasableGeneric for &'a mut (dyn FnMut(A1, A2, A3, A4, A5, A6, A7) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7, A8> ErasableGeneric for &'a (dyn Fn(A1, A2, A3, A4, A5, A6, A7, A8) -> R + 'a)

Source§

type Repr = &'static dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr, <A8 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7, A8> ErasableGeneric for &'a (dyn FnMut(A1, A2, A3, A4, A5, A6, A7, A8) -> R + 'a)

Source§

type Repr = &'static dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr, <A8 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7, A8> ErasableGeneric for &'a mut (dyn Fn(A1, A2, A3, A4, A5, A6, A7, A8) -> R + 'a)

Source§

type Repr = &'static mut dyn Fn(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr, <A8 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<'a, R, A1, A2, A3, A4, A5, A6, A7, A8> ErasableGeneric for &'a mut (dyn FnMut(A1, A2, A3, A4, A5, A6, A7, A8) -> R + 'a)

Source§

type Repr = &'static mut dyn FnMut(<A1 as ErasableGeneric>::Repr, <A2 as ErasableGeneric>::Repr, <A3 as ErasableGeneric>::Repr, <A4 as ErasableGeneric>::Repr, <A5 as ErasableGeneric>::Repr, <A6 as ErasableGeneric>::Repr, <A7 as ErasableGeneric>::Repr, <A8 as ErasableGeneric>::Repr) -> <R as ErasableGeneric>::Repr

Source§

impl<T: ErasableGeneric> ErasableGeneric for &[T]

Source§

type Repr = &'static [<T as ErasableGeneric>::Repr]

Source§

impl<T: ErasableGeneric> ErasableGeneric for &mut [T]

Source§

type Repr = &'static mut [<T as ErasableGeneric>::Repr]

Source§

impl<T: ErasableGeneric> ErasableGeneric for Option<T>

Source§

impl<T: ErasableGeneric> ErasableGeneric for &T

Source§

type Repr = &'static <T as ErasableGeneric>::Repr

Source§

impl<T: ErasableGeneric> ErasableGeneric for &mut T

Source§

type Repr = &'static mut <T as ErasableGeneric>::Repr

Source§

impl<T: ErasableGeneric> ErasableGeneric for Box<[T]>

Source§

impl<T: ErasableGeneric> ErasableGeneric for Vec<T>

Source§

impl<T: ErasableGeneric, E: ErasableGeneric> ErasableGeneric for Result<T, E>

Implementors§