Trait ExchangeFrom

Source
pub trait ExchangeFrom<Src, Index> {
    // Required method
    fn exchange_from(src: Src) -> Self;
}
Expand description

Constructs an enum from one of its variants, or from an enum composed of a subset of its variants.

Required Methods§

Source

fn exchange_from(src: Src) -> Self

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.

Implementors§

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 0]> for Enum
where Enum: FromVariant<Variant, [(); 0]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 1]> for Enum
where Enum: FromVariant<Variant, [(); 1]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 2]> for Enum
where Enum: FromVariant<Variant, [(); 2]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 3]> for Enum
where Enum: FromVariant<Variant, [(); 3]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 4]> for Enum
where Enum: FromVariant<Variant, [(); 4]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 5]> for Enum
where Enum: FromVariant<Variant, [(); 5]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 6]> for Enum
where Enum: FromVariant<Variant, [(); 6]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 7]> for Enum
where Enum: FromVariant<Variant, [(); 7]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 8]> for Enum
where Enum: FromVariant<Variant, [(); 8]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 9]> for Enum
where Enum: FromVariant<Variant, [(); 9]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 10]> for Enum
where Enum: FromVariant<Variant, [(); 10]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 11]> for Enum
where Enum: FromVariant<Variant, [(); 11]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 12]> for Enum
where Enum: FromVariant<Variant, [(); 12]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 13]> for Enum
where Enum: FromVariant<Variant, [(); 13]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 14]> for Enum
where Enum: FromVariant<Variant, [(); 14]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 15]> for Enum
where Enum: FromVariant<Variant, [(); 15]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 16]> for Enum
where Enum: FromVariant<Variant, [(); 16]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 17]> for Enum
where Enum: FromVariant<Variant, [(); 17]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 18]> for Enum
where Enum: FromVariant<Variant, [(); 18]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 19]> for Enum
where Enum: FromVariant<Variant, [(); 19]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 20]> for Enum
where Enum: FromVariant<Variant, [(); 20]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 21]> for Enum
where Enum: FromVariant<Variant, [(); 21]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 22]> for Enum
where Enum: FromVariant<Variant, [(); 22]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 23]> for Enum
where Enum: FromVariant<Variant, [(); 23]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 24]> for Enum
where Enum: FromVariant<Variant, [(); 24]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 25]> for Enum
where Enum: FromVariant<Variant, [(); 25]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 26]> for Enum
where Enum: FromVariant<Variant, [(); 26]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 27]> for Enum
where Enum: FromVariant<Variant, [(); 27]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 28]> for Enum
where Enum: FromVariant<Variant, [(); 28]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 29]> for Enum
where Enum: FromVariant<Variant, [(); 29]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 30]> for Enum
where Enum: FromVariant<Variant, [(); 30]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 31]> for Enum
where Enum: FromVariant<Variant, [(); 31]>,

Source§

impl<Enum, Variant> ExchangeFrom<Variant, [(); 32]> for Enum
where Enum: FromVariant<Variant, [(); 32]>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12, _I13, _I14, _I15, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12, _T13, _T14, _T15, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12, _I13, _I14, _I15)>> for Dest
where Src: Proto<Type = __16<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12, _T13, _T14, _T15>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8> + ExchangeFrom<_T9, _I9> + ExchangeFrom<_T10, _I10> + ExchangeFrom<_T11, _I11> + ExchangeFrom<_T12, _I12> + ExchangeFrom<_T13, _I13> + ExchangeFrom<_T14, _I14> + ExchangeFrom<_T15, _I15>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12, _I13, _I14, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12, _T13, _T14, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12, _I13, _I14)>> for Dest
where Src: Proto<Type = __15<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12, _T13, _T14>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8> + ExchangeFrom<_T9, _I9> + ExchangeFrom<_T10, _I10> + ExchangeFrom<_T11, _I11> + ExchangeFrom<_T12, _I12> + ExchangeFrom<_T13, _I13> + ExchangeFrom<_T14, _I14>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12, _I13, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12, _T13, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12, _I13)>> for Dest
where Src: Proto<Type = __14<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12, _T13>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8> + ExchangeFrom<_T9, _I9> + ExchangeFrom<_T10, _I10> + ExchangeFrom<_T11, _I11> + ExchangeFrom<_T12, _I12> + ExchangeFrom<_T13, _I13>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _I12)>> for Dest
where Src: Proto<Type = __13<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, _T12>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8> + ExchangeFrom<_T9, _I9> + ExchangeFrom<_T10, _I10> + ExchangeFrom<_T11, _I11> + ExchangeFrom<_T12, _I12>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _I11)>> for Dest
where Src: Proto<Type = __12<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, _T11>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8> + ExchangeFrom<_T9, _I9> + ExchangeFrom<_T10, _I10> + ExchangeFrom<_T11, _I11>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _I10)>> for Dest
where Src: Proto<Type = __11<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, _T10>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8> + ExchangeFrom<_T9, _I9> + ExchangeFrom<_T10, _I10>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _I9)>> for Dest
where Src: Proto<Type = __10<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, _T9>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8> + ExchangeFrom<_T9, _I9>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _I8)>> for Dest
where Src: Proto<Type = __9<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, _T8>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7> + ExchangeFrom<_T8, _I8>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7, _T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6, _I7)>> for Dest
where Src: Proto<Type = __8<_T0, _T1, _T2, _T3, _T4, _T5, _T6, _T7>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6> + ExchangeFrom<_T7, _I7>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _I6, _T0, _T1, _T2, _T3, _T4, _T5, _T6, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5, _I6)>> for Dest
where Src: Proto<Type = __7<_T0, _T1, _T2, _T3, _T4, _T5, _T6>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5> + ExchangeFrom<_T6, _I6>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _I5, _T0, _T1, _T2, _T3, _T4, _T5, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4, _I5)>> for Dest
where Src: Proto<Type = __6<_T0, _T1, _T2, _T3, _T4, _T5>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4> + ExchangeFrom<_T5, _I5>,

Source§

impl<_I0, _I1, _I2, _I3, _I4, _T0, _T1, _T2, _T3, _T4, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3, _I4)>> for Dest
where Src: Proto<Type = __5<_T0, _T1, _T2, _T3, _T4>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3> + ExchangeFrom<_T4, _I4>,

Source§

impl<_I0, _I1, _I2, _I3, _T0, _T1, _T2, _T3, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2, _I3)>> for Dest
where Src: Proto<Type = __4<_T0, _T1, _T2, _T3>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2> + ExchangeFrom<_T3, _I3>,

Source§

impl<_I0, _I1, _I2, _T0, _T1, _T2, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1, _I2)>> for Dest
where Src: Proto<Type = __3<_T0, _T1, _T2>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1> + ExchangeFrom<_T2, _I2>,

Source§

impl<_I0, _I1, _T0, _T1, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0, _I1)>> for Dest
where Src: Proto<Type = __2<_T0, _T1>>, Dest: ExchangeFrom<_T0, _I0> + ExchangeFrom<_T1, _I1>,

Source§

impl<_I0, _T0, Src, Dest> ExchangeFrom<Src, EnumToEnum<(_I0,)>> for Dest
where Src: Proto<Type = __1<_T0>>, Dest: ExchangeFrom<_T0, _I0>,