Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Inspired by Arrow's Union classes definition
- sealed class TypeWrapper22<out T1, out T2, out T3, out T4, out T5, out T6, out T7, out T8, out T9, out T10, out T11, out T12, out T13, out T14, out T15, out T16, out T17, out T18, out T19, out T20, out T21, out T22> {
- @PublishedApi
- internal object IMPL :
- TypeWrapper22<Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing, Nothing>()
- }
- typealias TypeWrapper21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> = TypeWrapper22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, Nothing>
- typealias TypeWrapper20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> = TypeWrapper21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Nothing>
- typealias TypeWrapper19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> = TypeWrapper20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, Nothing>
- typealias TypeWrapper18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> = TypeWrapper19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, Nothing>
- typealias TypeWrapper17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> = TypeWrapper18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, Nothing>
- typealias TypeWrapper16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> = TypeWrapper17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, Nothing>
- typealias TypeWrapper15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> = TypeWrapper16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, Nothing>
- typealias TypeWrapper14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> = TypeWrapper15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, Nothing>
- typealias TypeWrapper13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> = TypeWrapper14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, Nothing>
- typealias TypeWrapper12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> = TypeWrapper13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, Nothing>
- typealias TypeWrapper11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> = TypeWrapper12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, Nothing>
- typealias TypeWrapper10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> = TypeWrapper11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, Nothing>
- typealias TypeWrapper9<T1, T2, T3, T4, T5, T6, T7, T8, T9> = TypeWrapper10<T1, T2, T3, T4, T5, T6, T7, T8, T9, Nothing>
- typealias TypeWrapper8<T1, T2, T3, T4, T5, T6, T7, T8> = TypeWrapper9<T1, T2, T3, T4, T5, T6, T7, T8, Nothing>
- typealias TypeWrapper7<T1, T2, T3, T4, T5, T6, T7> = TypeWrapper8<T1, T2, T3, T4, T5, T6, T7, Nothing>
- typealias TypeWrapper6<T1, T2, T3, T4, T5, T6> = TypeWrapper7<T1, T2, T3, T4, T5, T6, Nothing>
- typealias TypeWrapper5<T1, T2, T3, T4, T5> = TypeWrapper6<T1, T2, T3, T4, T5, Nothing>
- typealias TypeWrapper4<T1, T2, T3, T4> = TypeWrapper5<T1, T2, T3, T4, Nothing>
- typealias TypeWrapper3<T1, T2, T3> = TypeWrapper4<T1, T2, T3, Nothing>
- typealias TypeWrapper2<T1, T2> = TypeWrapper3<T1, T2, Nothing>
- typealias TypeWrapper1<T1> = TypeWrapper2<T1, Nothing>
- // Type "constructors". The unitx parameters are there to avoid `Overload Resolution Ambiguity` errors
- // due to the fact that all of the functions are named "type"
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit,
- unit15: Unit = Unit,
- unit16: Unit = Unit,
- unit17: Unit = Unit,
- unit18: Unit = Unit,
- unit19: Unit = Unit,
- unit20: Unit = Unit,
- unit21: Unit = Unit
- ): TypeWrapper22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22> =
- TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit,
- unit15: Unit = Unit,
- unit16: Unit = Unit,
- unit17: Unit = Unit,
- unit18: Unit = Unit,
- unit19: Unit = Unit,
- unit20: Unit = Unit
- ): TypeWrapper21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, T21> =
- TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit,
- unit15: Unit = Unit,
- unit16: Unit = Unit,
- unit17: Unit = Unit,
- unit18: Unit = Unit,
- unit19: Unit = Unit
- ): TypeWrapper20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20> =
- TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit,
- unit15: Unit = Unit,
- unit16: Unit = Unit,
- unit17: Unit = Unit,
- unit18: Unit = Unit
- ): TypeWrapper19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19> =
- TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit,
- unit15: Unit = Unit,
- unit16: Unit = Unit,
- unit17: Unit = Unit
- ): TypeWrapper18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit,
- unit15: Unit = Unit,
- unit16: Unit = Unit
- ): TypeWrapper17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit,
- unit15: Unit = Unit
- ): TypeWrapper16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit,
- unit14: Unit = Unit
- ): TypeWrapper15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit,
- unit13: Unit = Unit
- ): TypeWrapper14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit,
- unit12: Unit = Unit
- ): TypeWrapper13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit,
- unit11: Unit = Unit
- ): TypeWrapper12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit,
- unit10: Unit = Unit
- ): TypeWrapper11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit,
- unit9: Unit = Unit
- ): TypeWrapper10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8, T9> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit,
- unit8: Unit = Unit
- ): TypeWrapper9<T1, T2, T3, T4, T5, T6, T7, T8, T9> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7, T8> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit,
- unit7: Unit = Unit
- ): TypeWrapper8<T1, T2, T3, T4, T5, T6, T7, T8> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6, T7> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit,
- unit6: Unit = Unit
- ): TypeWrapper7<T1, T2, T3, T4, T5, T6, T7> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5, T6> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit,
- unit5: Unit = Unit
- ): TypeWrapper6<T1, T2, T3, T4, T5, T6> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4, T5> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit,
- unit4: Unit = Unit
- ): TypeWrapper5<T1, T2, T3, T4, T5> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3, T4> type(
- unit1: Unit = Unit,
- unit2: Unit = Unit,
- unit3: Unit = Unit
- ): TypeWrapper4<T1, T2, T3, T4> = TypeWrapper22.IMPL
- inline fun <T1, T2, T3> type(unit1: Unit = Unit, unit2: Unit = Unit): TypeWrapper3<T1, T2, T3> = TypeWrapper22.IMPL
- inline fun <T1, T2> type(unit1: Unit = Unit): TypeWrapper2<T1, T2> = TypeWrapper22.IMPL
- inline fun <T1> type(): TypeWrapper1<T1> = TypeWrapper22.IMPL
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement