Trait jlrs::layout::typecheck::Typecheck [−][src]
pub unsafe trait Typecheck { }
Expand description
This trait is used in combination with Value::is
and DataType::is
to check if that
property holds true.
Most types that implement this trait also implement Wrapper
or Unbox
, for these types
the typecheck indicates whether or not it’s valid to cast the value to or unbox it as that
type. This trait is automatically derived for wrappers generated with JlrsReflect.jl, in this
case the typecheck performs a ValidLayout
-check.
Implementations on Foreign Types
Implementors
impl<T1, T2> Typecheck for Tuple2<T1, T2> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
impl<T1, T2, T3> Typecheck for Tuple3<T1, T2, T3> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4> Typecheck for Tuple4<T1, T2, T3, T4> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5> Typecheck for Tuple5<T1, T2, T3, T4, T5> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6> Typecheck for Tuple6<T1, T2, T3, T4, T5, T6> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7> Typecheck for Tuple7<T1, T2, T3, T4, T5, T6, T7> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8> Typecheck for Tuple8<T1, T2, T3, T4, T5, T6, T7, T8> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9> Typecheck for Tuple9<T1, T2, T3, T4, T5, T6, T7, T8, T9> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Typecheck for Tuple10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Typecheck for Tuple11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> Typecheck for Tuple12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> Typecheck for Tuple13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> Typecheck for Tuple14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> Typecheck for Tuple15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> Typecheck for Tuple16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> Typecheck for Tuple17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> Typecheck for Tuple18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> Typecheck for Tuple19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> Typecheck for Tuple20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> Typecheck for Tuple21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> Typecheck for Tuple22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Typecheck for Tuple23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Typecheck for Tuple24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Typecheck for Tuple25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> Typecheck for Tuple26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
T26: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> Typecheck for Tuple27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
T26: ValidLayout + Clone + Debug,
T27: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> Typecheck for Tuple28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
T26: ValidLayout + Clone + Debug,
T27: ValidLayout + Clone + Debug,
T28: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29> Typecheck for Tuple29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
T26: ValidLayout + Clone + Debug,
T27: ValidLayout + Clone + Debug,
T28: ValidLayout + Clone + Debug,
T29: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30> Typecheck for Tuple30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
T26: ValidLayout + Clone + Debug,
T27: ValidLayout + Clone + Debug,
T28: ValidLayout + Clone + Debug,
T29: ValidLayout + Clone + Debug,
T30: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31> Typecheck for Tuple31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
T26: ValidLayout + Clone + Debug,
T27: ValidLayout + Clone + Debug,
T28: ValidLayout + Clone + Debug,
T29: ValidLayout + Clone + Debug,
T30: ValidLayout + Clone + Debug,
T31: ValidLayout + Clone + Debug,
impl<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> Typecheck for Tuple32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, T29, T30, T31, T32> where
T1: ValidLayout + Clone + Debug,
T2: ValidLayout + Clone + Debug,
T3: ValidLayout + Clone + Debug,
T4: ValidLayout + Clone + Debug,
T5: ValidLayout + Clone + Debug,
T6: ValidLayout + Clone + Debug,
T7: ValidLayout + Clone + Debug,
T8: ValidLayout + Clone + Debug,
T9: ValidLayout + Clone + Debug,
T10: ValidLayout + Clone + Debug,
T11: ValidLayout + Clone + Debug,
T12: ValidLayout + Clone + Debug,
T13: ValidLayout + Clone + Debug,
T14: ValidLayout + Clone + Debug,
T15: ValidLayout + Clone + Debug,
T16: ValidLayout + Clone + Debug,
T17: ValidLayout + Clone + Debug,
T18: ValidLayout + Clone + Debug,
T19: ValidLayout + Clone + Debug,
T20: ValidLayout + Clone + Debug,
T21: ValidLayout + Clone + Debug,
T22: ValidLayout + Clone + Debug,
T23: ValidLayout + Clone + Debug,
T24: ValidLayout + Clone + Debug,
T25: ValidLayout + Clone + Debug,
T26: ValidLayout + Clone + Debug,
T27: ValidLayout + Clone + Debug,
T28: ValidLayout + Clone + Debug,
T29: ValidLayout + Clone + Debug,
T30: ValidLayout + Clone + Debug,
T31: ValidLayout + Clone + Debug,
T32: ValidLayout + Clone + Debug,