generated.struct.scala Maven / Gradle / Ivy
/*
* Copyright 2021 Disney Streaming
*
* Licensed under the Tomorrow Open Source Technology License, Version 1.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://disneystreaming.github.io/TOST-1.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package schematic
object struct {
trait Schematic[F[_]] {
def struct[S](fields: Vector[Field[F, S, _]])(const: Vector[Any] => S): F[S]
}
trait OpenSyntax {
def struct[S[x[_]] <: Schematic[x], Z](const: => Z) : schematic.Schema[S, Z] =
new Schema(Vector.empty, _ => const)
def struct[S[x[_]] <: Schematic[x], Z](
fields: Vector[StructureField[S, Z, _]])(
const: Vector[Any] => Z) : schematic.Schema[S, Z] =
new Schema(fields, const)
def bigStruct[S[x[_]] <: Schematic[x], Z](
fields: StructureField[S, Z, _]*)(
const: Vector[Any] => Z) : schematic.Schema[S, Z] =
new Schema(fields.toVector, const)
def struct[S[x[_]] <: Schematic[x], Z, A0](a0: StructureField[S, Z, A0])(const : (A0) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0), arr => const(arr(0).asInstanceOf[A0]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1])(const : (A0, A1) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2])(const : (A0, A1, A2) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3])(const : (A0, A1, A2, A3) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4])(const : (A0, A1, A2, A3, A4) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5])(const : (A0, A1, A2, A3, A4, A5) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6])(const : (A0, A1, A2, A3, A4, A5, A6) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7])(const : (A0, A1, A2, A3, A4, A5, A6, A7) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18], a19: StructureField[S, Z, A19])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18], arr(19).asInstanceOf[A19]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18], a19: StructureField[S, Z, A19], a20: StructureField[S, Z, A20])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18], arr(19).asInstanceOf[A19], arr(20).asInstanceOf[A20]))
def struct[S[x[_]] <: Schematic[x], Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18], a19: StructureField[S, Z, A19], a20: StructureField[S, Z, A20], a21: StructureField[S, Z, A21])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18], arr(19).asInstanceOf[A19], arr(20).asInstanceOf[A20], arr(21).asInstanceOf[A21]))
}
trait ClosedSyntax[S[x[_]] <: Schematic[x]]{
def struct[Z](const: => Z) : schematic.Schema[S, Z] =
new Schema(Vector.empty, _ => const)
def struct[Z](
fields: Vector[StructureField[S, Z, _]])(
const: Vector[Any] => Z) : schematic.Schema[S, Z] =
new Schema(fields, const)
def bigStruct[Z](
fields: StructureField[S, Z, _]*)(
const: Vector[Any] => Z) : schematic.Schema[S, Z] =
new Schema(fields.toVector, const)
def struct[Z, A0](a0: StructureField[S, Z, A0])(const : (A0) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0), arr => const(arr(0).asInstanceOf[A0]))
def struct[Z, A0, A1](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1])(const : (A0, A1) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1]))
def struct[Z, A0, A1, A2](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2])(const : (A0, A1, A2) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2]))
def struct[Z, A0, A1, A2, A3](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3])(const : (A0, A1, A2, A3) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3]))
def struct[Z, A0, A1, A2, A3, A4](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4])(const : (A0, A1, A2, A3, A4) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4]))
def struct[Z, A0, A1, A2, A3, A4, A5](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5])(const : (A0, A1, A2, A3, A4, A5) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6])(const : (A0, A1, A2, A3, A4, A5, A6) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7])(const : (A0, A1, A2, A3, A4, A5, A6, A7) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18], a19: StructureField[S, Z, A19])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18], arr(19).asInstanceOf[A19]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18], a19: StructureField[S, Z, A19], a20: StructureField[S, Z, A20])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18], arr(19).asInstanceOf[A19], arr(20).asInstanceOf[A20]))
def struct[Z, A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21](a0: StructureField[S, Z, A0], a1: StructureField[S, Z, A1], a2: StructureField[S, Z, A2], a3: StructureField[S, Z, A3], a4: StructureField[S, Z, A4], a5: StructureField[S, Z, A5], a6: StructureField[S, Z, A6], a7: StructureField[S, Z, A7], a8: StructureField[S, Z, A8], a9: StructureField[S, Z, A9], a10: StructureField[S, Z, A10], a11: StructureField[S, Z, A11], a12: StructureField[S, Z, A12], a13: StructureField[S, Z, A13], a14: StructureField[S, Z, A14], a15: StructureField[S, Z, A15], a16: StructureField[S, Z, A16], a17: StructureField[S, Z, A17], a18: StructureField[S, Z, A18], a19: StructureField[S, Z, A19], a20: StructureField[S, Z, A20], a21: StructureField[S, Z, A21])(const : (A0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, A13, A14, A15, A16, A17, A18, A19, A20, A21) => Z) : schematic.Schema[S, Z] = new Schema[S, Z](Vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, a17, a18, a19, a20, a21), arr => const(arr(0).asInstanceOf[A0], arr(1).asInstanceOf[A1], arr(2).asInstanceOf[A2], arr(3).asInstanceOf[A3], arr(4).asInstanceOf[A4], arr(5).asInstanceOf[A5], arr(6).asInstanceOf[A6], arr(7).asInstanceOf[A7], arr(8).asInstanceOf[A8], arr(9).asInstanceOf[A9], arr(10).asInstanceOf[A10], arr(11).asInstanceOf[A11], arr(12).asInstanceOf[A12], arr(13).asInstanceOf[A13], arr(14).asInstanceOf[A14], arr(15).asInstanceOf[A15], arr(16).asInstanceOf[A16], arr(17).asInstanceOf[A17], arr(18).asInstanceOf[A18], arr(19).asInstanceOf[A19], arr(20).asInstanceOf[A20], arr(21).asInstanceOf[A21]))
}
class Schema[S[x[_]] <: Schematic[x], Z](
fields: Vector[StructureField[S, Z, _]],
const: Vector[Any] => Z
) extends schematic.Schema[S, Z]{
def compile[F[_]](s: S[F]) : F[Z] = s.struct(fields.map(_.compile(s)))(const)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy