Trait Downcast

Source
pub trait Downcast<'b, NK, EK, T, S>
where NK: Key, EK: Key, T: 'b, S: SchemaExt<NK, EK>,
{ // Required method fn downcast<'a: 'b>(&'a self) -> SchemaResult<T, NK, EK, S>; }

Required Methods§

Source

fn downcast<'a: 'b>(&'a self) -> SchemaResult<T, NK, EK, S>

Cast a node or edge into a more specific type

The call will fail if the requested type is not a suptype of the current one

Implementors§

Source§

impl<'a, NK, EK, S, T, T1, T2> Downcast<'a, NK, EK, Either2<&'a T1, &'a T2>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3> Downcast<'a, NK, EK, Either3<&'a T1, &'a T2, &'a T3>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3, T4> Downcast<'a, NK, EK, Either4<&'a T1, &'a T2, &'a T3, &'a T4>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S> + Downcast<'a, NK, EK, &'a T4, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed, T4: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3, T4, T5> Downcast<'a, NK, EK, Either5<&'a T1, &'a T2, &'a T3, &'a T4, &'a T5>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S> + Downcast<'a, NK, EK, &'a T4, S> + Downcast<'a, NK, EK, &'a T5, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed, T4: Typed, T5: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3, T4, T5, T6> Downcast<'a, NK, EK, Either6<&'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S> + Downcast<'a, NK, EK, &'a T4, S> + Downcast<'a, NK, EK, &'a T5, S> + Downcast<'a, NK, EK, &'a T6, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed, T4: Typed, T5: Typed, T6: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3, T4, T5, T6, T7> Downcast<'a, NK, EK, Either7<&'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6, &'a T7>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S> + Downcast<'a, NK, EK, &'a T4, S> + Downcast<'a, NK, EK, &'a T5, S> + Downcast<'a, NK, EK, &'a T6, S> + Downcast<'a, NK, EK, &'a T7, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed, T4: Typed, T5: Typed, T6: Typed, T7: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3, T4, T5, T6, T7, T8> Downcast<'a, NK, EK, Either8<&'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6, &'a T7, &'a T8>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S> + Downcast<'a, NK, EK, &'a T4, S> + Downcast<'a, NK, EK, &'a T5, S> + Downcast<'a, NK, EK, &'a T6, S> + Downcast<'a, NK, EK, &'a T7, S> + Downcast<'a, NK, EK, &'a T8, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed, T4: Typed, T5: Typed, T6: Typed, T7: Typed, T8: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3, T4, T5, T6, T7, T8, T9> Downcast<'a, NK, EK, Either9<&'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6, &'a T7, &'a T8, &'a T9>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S> + Downcast<'a, NK, EK, &'a T4, S> + Downcast<'a, NK, EK, &'a T5, S> + Downcast<'a, NK, EK, &'a T6, S> + Downcast<'a, NK, EK, &'a T7, S> + Downcast<'a, NK, EK, &'a T8, S> + Downcast<'a, NK, EK, &'a T9, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed, T4: Typed, T5: Typed, T6: Typed, T7: Typed, T8: Typed, T9: Typed,

Source§

impl<'a, NK, EK, S, T, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Downcast<'a, NK, EK, Either10<&'a T1, &'a T2, &'a T3, &'a T4, &'a T5, &'a T6, &'a T7, &'a T8, &'a T9, &'a T10>, S> for T
where T: Typed + Downcast<'a, NK, EK, &'a T1, S> + Downcast<'a, NK, EK, &'a T2, S> + Downcast<'a, NK, EK, &'a T3, S> + Downcast<'a, NK, EK, &'a T4, S> + Downcast<'a, NK, EK, &'a T5, S> + Downcast<'a, NK, EK, &'a T6, S> + Downcast<'a, NK, EK, &'a T7, S> + Downcast<'a, NK, EK, &'a T8, S> + Downcast<'a, NK, EK, &'a T9, S> + Downcast<'a, NK, EK, &'a T10, S>, NK: Key, EK: Key, S: SchemaExt<NK, EK>, T1: Typed, T2: Typed, T3: Typed, T4: Typed, T5: Typed, T6: Typed, T7: Typed, T8: Typed, T9: Typed, T10: Typed,

Source§

impl<'a, O1, O2, NK, EK, S, T> Downcast<'a, NK, EK, Either<&'a O1, &'a O2>, S> for T
where T: Downcast<'a, NK, EK, &'a O1, S> + Downcast<'a, NK, EK, &'a O2, S> + Typed, O1: Typed, O2: Typed, NK: Key, EK: Key, S: SchemaExt<NK, EK>,

Source§

impl<'b, NK, EK, Old, New, OE, ON, OTN: 'b, NE, NN, NTN> Downcast<'b, NK, EK, EitherVersion<&'b OTN, &'b NTN>, InBetween<NK, EK, Old, New>> for EitherVersion<ON, NN>
where NK: Key, EK: Key, OE: EdgeExt<EK>, NE: EdgeExt<EK>, ON: NodeExt<NK> + Downcast<'b, NK, EK, &'b OTN, Old>, NN: NodeExt<NK> + Downcast<'b, NK, EK, &'b NTN, New>, Old: SchemaExt<NK, EK, E = OE, N = ON> + MigrateSchema<NK, EK, New>, New: SchemaExt<NK, EK, E = NE, N = NN>,