mirror of
https://github.com/IBM/fp-go.git
synced 2025-06-17 00:07:49 +02:00
fix: auto generate SequenceT for ReaderIOEither
Signed-off-by: Dr. Carsten Leue <carsten.leue@de.ibm.com>
This commit is contained in:
@ -15,22 +15,13 @@ func From[A any](data ...A) []A {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// MakeBy returns a `Array` of length `n` with element `i` initialized with `f(i)`.
|
// MakeBy returns a `Array` of length `n` with element `i` initialized with `f(i)`.
|
||||||
func MakeBy[A any](n int, f func(int) A) []A {
|
func MakeBy[F ~func(int) A, A any](n int, f F) []A {
|
||||||
// sanity check
|
return G.MakeBy[[]A](n, f)
|
||||||
if n <= 0 {
|
|
||||||
return Empty[A]()
|
|
||||||
}
|
|
||||||
// run the generator function across the input
|
|
||||||
as := make([]A, n)
|
|
||||||
for i := n - 1; i >= 0; i-- {
|
|
||||||
as[i] = f(i)
|
|
||||||
}
|
|
||||||
return as
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Replicate creates a `Array` containing a value repeated the specified number of times.
|
// Replicate creates a `Array` containing a value repeated the specified number of times.
|
||||||
func Replicate[A any](n int, a A) []A {
|
func Replicate[A any](n int, a A) []A {
|
||||||
return MakeBy(n, F.Constant1[int](a))
|
return G.Replicate[[]A](n, a)
|
||||||
}
|
}
|
||||||
|
|
||||||
func MonadMap[A, B any](as []A, f func(a A) B) []B {
|
func MonadMap[A, B any](as []A, f func(a A) B) []B {
|
||||||
@ -159,21 +150,19 @@ func Of[A any](a A) []A {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func MonadChain[A, B any](fa []A, f func(a A) []B) []B {
|
func MonadChain[A, B any](fa []A, f func(a A) []B) []B {
|
||||||
return array.Reduce(fa, func(bs []B, a A) []B {
|
return G.MonadChain[[]A, []B](fa, f)
|
||||||
return append(bs, f(a)...)
|
|
||||||
}, Zero[B]())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Chain[A, B any](f func(a A) []B) func([]A) []B {
|
func Chain[A, B any](f func(A) []B) func([]A) []B {
|
||||||
return F.Bind2nd(MonadChain[A, B], f)
|
return G.Chain[[]A, []B](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
func MonadAp[B, A any](fab []func(A) B, fa []A) []B {
|
func MonadAp[B, A any](fab []func(A) B, fa []A) []B {
|
||||||
return MonadChain(fab, F.Bind1st(MonadMap[A, B], fa))
|
return G.MonadAp[[]B](fab, fa)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Ap[B, A any](fa []A) func([]func(A) B) []B {
|
func Ap[B, A any](fa []A) func([]func(A) B) []B {
|
||||||
return F.Bind2nd(MonadAp[B, A], fa)
|
return G.Ap[[]B, []func(A) B](fa)
|
||||||
}
|
}
|
||||||
|
|
||||||
func Match[A, B any](onEmpty func() B, onNonEmpty func([]A) B) func([]A) B {
|
func Match[A, B any](onEmpty func() B, onNonEmpty func([]A) B) func([]A) B {
|
||||||
|
@ -17,6 +17,24 @@ func From[GA ~[]A, A any](data ...A) GA {
|
|||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// MakeBy returns a `Array` of length `n` with element `i` initialized with `f(i)`.
|
||||||
|
func MakeBy[AS ~[]A, F ~func(int) A, A any](n int, f F) AS {
|
||||||
|
// sanity check
|
||||||
|
if n <= 0 {
|
||||||
|
return Empty[AS]()
|
||||||
|
}
|
||||||
|
// run the generator function across the input
|
||||||
|
as := make(AS, n)
|
||||||
|
for i := n - 1; i >= 0; i-- {
|
||||||
|
as[i] = f(i)
|
||||||
|
}
|
||||||
|
return as
|
||||||
|
}
|
||||||
|
|
||||||
|
func Replicate[AS ~[]A, A any](n int, a A) AS {
|
||||||
|
return MakeBy[AS](n, F.Constant1[int](a))
|
||||||
|
}
|
||||||
|
|
||||||
func Lookup[GA ~[]A, A any](idx int) func(GA) O.Option[A] {
|
func Lookup[GA ~[]A, A any](idx int) func(GA) O.Option[A] {
|
||||||
none := O.None[A]()
|
none := O.None[A]()
|
||||||
if idx < 0 {
|
if idx < 0 {
|
||||||
@ -107,3 +125,21 @@ func MonadPartition[GA ~[]A, A any](as GA, pred func(A) bool) tuple.Tuple2[GA, G
|
|||||||
func Partition[GA ~[]A, A any](pred func(A) bool) func(GA) tuple.Tuple2[GA, GA] {
|
func Partition[GA ~[]A, A any](pred func(A) bool) func(GA) tuple.Tuple2[GA, GA] {
|
||||||
return F.Bind2nd(MonadPartition[GA, A], pred)
|
return F.Bind2nd(MonadPartition[GA, A], pred)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MonadChain[AS ~[]A, BS ~[]B, A, B any](fa AS, f func(a A) BS) BS {
|
||||||
|
return array.Reduce(fa, func(bs BS, a A) BS {
|
||||||
|
return append(bs, f(a)...)
|
||||||
|
}, Empty[BS]())
|
||||||
|
}
|
||||||
|
|
||||||
|
func Chain[AS ~[]A, BS ~[]B, A, B any](f func(A) BS) func(AS) BS {
|
||||||
|
return F.Bind2nd(MonadChain[AS, BS, A, B], f)
|
||||||
|
}
|
||||||
|
|
||||||
|
func MonadAp[BS ~[]B, ABS ~[]func(A) B, AS ~[]A, B, A any](fab ABS, fa AS) BS {
|
||||||
|
return MonadChain(fab, F.Bind1st(MonadMap[AS, BS, A, B], fa))
|
||||||
|
}
|
||||||
|
|
||||||
|
func Ap[BS ~[]B, ABS ~[]func(A) B, AS ~[]A, B, A any](fa AS) func(ABS) BS {
|
||||||
|
return F.Bind2nd(MonadAp[BS, ABS, AS], fa)
|
||||||
|
}
|
||||||
|
@ -5,10 +5,118 @@ import (
|
|||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strings"
|
||||||
|
|
||||||
C "github.com/urfave/cli/v2"
|
C "github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func generateNestedCallbacks(i, total int) string {
|
||||||
|
var buf strings.Builder
|
||||||
|
for j := i; j < total; j++ {
|
||||||
|
if j > i {
|
||||||
|
buf.WriteString(" ")
|
||||||
|
}
|
||||||
|
buf.WriteString(fmt.Sprintf("func(T%d)", j+1))
|
||||||
|
}
|
||||||
|
if i > 0 {
|
||||||
|
buf.WriteString(" ")
|
||||||
|
}
|
||||||
|
buf.WriteString(tupleType(total))
|
||||||
|
return buf.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func generateContextReaderIOEitherSequenceT(f, fg *os.File, i int) {
|
||||||
|
// tuple type
|
||||||
|
tuple := tupleType(i)
|
||||||
|
|
||||||
|
// non-generic version
|
||||||
|
// generic version
|
||||||
|
fmt.Fprintf(f, "\n// SequenceT%d converts %d [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple%d].\n", i, i, i)
|
||||||
|
fmt.Fprintf(f, "func SequenceT%d[", i)
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
if j > 0 {
|
||||||
|
fmt.Fprintf(f, ", ")
|
||||||
|
}
|
||||||
|
fmt.Fprintf(f, "T%d", j+1)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(f, " any](")
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
if j > 0 {
|
||||||
|
fmt.Fprintf(f, ", ")
|
||||||
|
}
|
||||||
|
fmt.Fprintf(f, "t%d ReaderIOEither[T%d]", j+1, j+1)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(f, ") ReaderIOEither[%s] {\n", tuple)
|
||||||
|
fmt.Fprintf(f, " return G.SequenceT%d[ReaderIOEither[%s]](", i, tuple)
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
if j > 0 {
|
||||||
|
fmt.Fprintf(f, ", ")
|
||||||
|
}
|
||||||
|
fmt.Fprintf(f, "t%d", j+1)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(f, ")\n")
|
||||||
|
fmt.Fprintf(f, "}\n")
|
||||||
|
|
||||||
|
// generic version
|
||||||
|
fmt.Fprintf(fg, "\n// SequenceT%d converts %d readers into a reader of a [T.Tuple%d].\n", i, i, i)
|
||||||
|
fmt.Fprintf(fg, "func SequenceT%d[\n", i)
|
||||||
|
|
||||||
|
fmt.Fprintf(fg, " GR_TUPLE%d ~func(context.Context) GIO_TUPLE%d,\n", i, i)
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
fmt.Fprintf(fg, " GR_T%d ~func(context.Context) GIO_T%d,\n", j+1, j+1)
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Fprintf(fg, " GIO_TUPLE%d ~func() E.Either[error, %s],\n", i, tuple)
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
fmt.Fprintf(fg, " GIO_T%d ~func() E.Either[error, T%d],\n", j+1, j+1)
|
||||||
|
}
|
||||||
|
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
fmt.Fprintf(fg, " T%d", j+1)
|
||||||
|
if j < i-1 {
|
||||||
|
fmt.Fprintf(fg, ",\n")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Fprintf(fg, " any](\n")
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
fmt.Fprintf(fg, " t%d GR_T%d,\n", j+1, j+1)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(fg, ") GR_TUPLE%d {\n", i)
|
||||||
|
fmt.Fprintf(fg, " return A.SequenceT%d(\n", i)
|
||||||
|
// map call
|
||||||
|
var cr string
|
||||||
|
if i > 1 {
|
||||||
|
cb := generateNestedCallbacks(1, i)
|
||||||
|
cio := fmt.Sprintf("func() E.Either[error, %s]", cb)
|
||||||
|
cr = fmt.Sprintf("func(context.Context) %s", cio)
|
||||||
|
} else {
|
||||||
|
cr = fmt.Sprintf("GR_TUPLE%d", i)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(fg, " Map[GR_T%d, %s, GIO_T%d],\n", 1, cr, 1)
|
||||||
|
// the apply calls
|
||||||
|
for j := 1; j < i; j++ {
|
||||||
|
if j < i-1 {
|
||||||
|
cb := generateNestedCallbacks(j+1, i)
|
||||||
|
cio := fmt.Sprintf("func() E.Either[error, %s]", cb)
|
||||||
|
cr = fmt.Sprintf("func(context.Context) %s", cio)
|
||||||
|
} else {
|
||||||
|
cr = fmt.Sprintf("GR_TUPLE%d", i)
|
||||||
|
}
|
||||||
|
fmt.Fprintf(fg, " Ap[%s, func(context.Context) func() E.Either[error, %s], GR_T%d],\n", cr, generateNestedCallbacks(j, i), j+1)
|
||||||
|
}
|
||||||
|
// raw parameters
|
||||||
|
for j := 0; j < i; j++ {
|
||||||
|
fmt.Fprintf(fg, " t%d,\n", j+1)
|
||||||
|
}
|
||||||
|
// // map
|
||||||
|
// Ap[GB, func(E) func() ET.Either[L, func(C) T.Tuple3[A, B, C]], func(E) func() ET.Either[L, func(B) func(C) T.Tuple3[A, B, C]], GIOB, func() ET.Either[L, func(C) T.Tuple3[A, B, C]], func() ET.Either[L, func(B) func(C) T.Tuple3[A, B, C]], E, L, B, func(C) T.Tuple3[A, B, C]],
|
||||||
|
// Ap[GC, GTABC, func(E) func() ET.Either[L, func(C) T.Tuple3[A, B, C]], GIOC, GIOTABC, func() ET.Either[L, func(C) T.Tuple3[A, B, C]], E, L, C, T.Tuple3[A, B, C]],
|
||||||
|
|
||||||
|
// a, b, c,
|
||||||
|
fmt.Fprintf(fg, " )\n")
|
||||||
|
fmt.Fprintf(fg, "}\n")
|
||||||
|
}
|
||||||
|
|
||||||
func generateContextReaderIOEitherEitherize(f, fg *os.File, i int) {
|
func generateContextReaderIOEitherEitherize(f, fg *os.File, i int) {
|
||||||
// non generic version
|
// non generic version
|
||||||
fmt.Fprintf(f, "\n// Eitherize%d converts a function with %d parameters returning a tuple into a function with %d parameters returning a [ReaderIOEither[R]]\n// The inverse function is [Uneitherize%d]\n", i, i, i, i)
|
fmt.Fprintf(f, "\n// Eitherize%d converts a function with %d parameters returning a tuple into a function with %d parameters returning a [ReaderIOEither[R]]\n// The inverse function is [Uneitherize%d]\n", i, i, i, i)
|
||||||
@ -90,6 +198,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
|
|
||||||
G "github.com/IBM/fp-go/context/%s/generic"
|
G "github.com/IBM/fp-go/context/%s/generic"
|
||||||
|
T "github.com/IBM/fp-go/tuple"
|
||||||
)
|
)
|
||||||
`, pkg)
|
`, pkg)
|
||||||
|
|
||||||
@ -101,6 +210,8 @@ import (
|
|||||||
|
|
||||||
E "github.com/IBM/fp-go/either"
|
E "github.com/IBM/fp-go/either"
|
||||||
RE "github.com/IBM/fp-go/readerioeither/generic"
|
RE "github.com/IBM/fp-go/readerioeither/generic"
|
||||||
|
A "github.com/IBM/fp-go/internal/apply"
|
||||||
|
T "github.com/IBM/fp-go/tuple"
|
||||||
)
|
)
|
||||||
`)
|
`)
|
||||||
|
|
||||||
@ -109,6 +220,8 @@ import (
|
|||||||
for i := 1; i <= count; i++ {
|
for i := 1; i <= count; i++ {
|
||||||
// eitherize
|
// eitherize
|
||||||
generateContextReaderIOEitherEitherize(f, fg, i)
|
generateContextReaderIOEitherEitherize(f, fg, i)
|
||||||
|
// sequenceT
|
||||||
|
generateContextReaderIOEitherSequenceT(f, fg, i)
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
@ -1,4 +1,19 @@
|
|||||||
// Package readerioeither contains a version of [ReaderIOEither] that takes a golang [context.Context] as its context
|
// Copyright (c) 2023 IBM Corp.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// 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 readerioeither contains a version of [ReaderIOEither] that takes a golang [context.Context] as its context and that assumes the standard go error
|
||||||
package readerioeither
|
package readerioeither
|
||||||
|
|
||||||
//go:generate go run ../.. contextreaderioeither --count 10 --filename gen.go
|
//go:generate go run ../.. contextreaderioeither --count 10 --filename gen.go
|
||||||
|
@ -2,76 +2,127 @@ package readerioeither
|
|||||||
|
|
||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:34.1521763 +0200 CEST m=+0.011558001
|
// 2023-07-20 16:14:27.3155005 +0200 CEST m=+0.020795301
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
G "github.com/IBM/fp-go/context/readerioeither/generic"
|
G "github.com/IBM/fp-go/context/readerioeither/generic"
|
||||||
|
T "github.com/IBM/fp-go/tuple"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [ReaderIOEither[R]]
|
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize0]
|
// The inverse function is [Uneitherize0]
|
||||||
func Eitherize0[F ~func(context.Context) (R, error), R any](f F) func() ReaderIOEither[R] {
|
func Eitherize0[F ~func(context.Context) (R, error), R any](f F) func() ReaderIOEither[R] {
|
||||||
return G.Eitherize0[ReaderIOEither[R]](f)
|
return G.Eitherize0[ReaderIOEither[R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [ReaderIOEither[R]]
|
// Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize1]
|
// The inverse function is [Uneitherize1]
|
||||||
func Eitherize1[F ~func(context.Context, T0) (R, error), T0, R any](f F) func(T0) ReaderIOEither[R] {
|
func Eitherize1[F ~func(context.Context, T0) (R, error), T0, R any](f F) func(T0) ReaderIOEither[R] {
|
||||||
return G.Eitherize1[ReaderIOEither[R]](f)
|
return G.Eitherize1[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT1 converts 1 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple1].
|
||||||
|
func SequenceT1[T1 any](t1 ReaderIOEither[T1]) ReaderIOEither[T.Tuple1[T1]] {
|
||||||
|
return G.SequenceT1[ReaderIOEither[T.Tuple1[T1]]](t1)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [ReaderIOEither[R]]
|
// Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize2]
|
// The inverse function is [Uneitherize2]
|
||||||
func Eitherize2[F ~func(context.Context, T0, T1) (R, error), T0, T1, R any](f F) func(T0, T1) ReaderIOEither[R] {
|
func Eitherize2[F ~func(context.Context, T0, T1) (R, error), T0, T1, R any](f F) func(T0, T1) ReaderIOEither[R] {
|
||||||
return G.Eitherize2[ReaderIOEither[R]](f)
|
return G.Eitherize2[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT2 converts 2 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple2].
|
||||||
|
func SequenceT2[T1, T2 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2]) ReaderIOEither[T.Tuple2[T1, T2]] {
|
||||||
|
return G.SequenceT2[ReaderIOEither[T.Tuple2[T1, T2]]](t1, t2)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [ReaderIOEither[R]]
|
// Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize3]
|
// The inverse function is [Uneitherize3]
|
||||||
func Eitherize3[F ~func(context.Context, T0, T1, T2) (R, error), T0, T1, T2, R any](f F) func(T0, T1, T2) ReaderIOEither[R] {
|
func Eitherize3[F ~func(context.Context, T0, T1, T2) (R, error), T0, T1, T2, R any](f F) func(T0, T1, T2) ReaderIOEither[R] {
|
||||||
return G.Eitherize3[ReaderIOEither[R]](f)
|
return G.Eitherize3[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT3 converts 3 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple3].
|
||||||
|
func SequenceT3[T1, T2, T3 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3]) ReaderIOEither[T.Tuple3[T1, T2, T3]] {
|
||||||
|
return G.SequenceT3[ReaderIOEither[T.Tuple3[T1, T2, T3]]](t1, t2, t3)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [ReaderIOEither[R]]
|
// Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize4]
|
// The inverse function is [Uneitherize4]
|
||||||
func Eitherize4[F ~func(context.Context, T0, T1, T2, T3) (R, error), T0, T1, T2, T3, R any](f F) func(T0, T1, T2, T3) ReaderIOEither[R] {
|
func Eitherize4[F ~func(context.Context, T0, T1, T2, T3) (R, error), T0, T1, T2, T3, R any](f F) func(T0, T1, T2, T3) ReaderIOEither[R] {
|
||||||
return G.Eitherize4[ReaderIOEither[R]](f)
|
return G.Eitherize4[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT4 converts 4 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple4].
|
||||||
|
func SequenceT4[T1, T2, T3, T4 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3], t4 ReaderIOEither[T4]) ReaderIOEither[T.Tuple4[T1, T2, T3, T4]] {
|
||||||
|
return G.SequenceT4[ReaderIOEither[T.Tuple4[T1, T2, T3, T4]]](t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [ReaderIOEither[R]]
|
// Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize5]
|
// The inverse function is [Uneitherize5]
|
||||||
func Eitherize5[F ~func(context.Context, T0, T1, T2, T3, T4) (R, error), T0, T1, T2, T3, T4, R any](f F) func(T0, T1, T2, T3, T4) ReaderIOEither[R] {
|
func Eitherize5[F ~func(context.Context, T0, T1, T2, T3, T4) (R, error), T0, T1, T2, T3, T4, R any](f F) func(T0, T1, T2, T3, T4) ReaderIOEither[R] {
|
||||||
return G.Eitherize5[ReaderIOEither[R]](f)
|
return G.Eitherize5[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT5 converts 5 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple5].
|
||||||
|
func SequenceT5[T1, T2, T3, T4, T5 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3], t4 ReaderIOEither[T4], t5 ReaderIOEither[T5]) ReaderIOEither[T.Tuple5[T1, T2, T3, T4, T5]] {
|
||||||
|
return G.SequenceT5[ReaderIOEither[T.Tuple5[T1, T2, T3, T4, T5]]](t1, t2, t3, t4, t5)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [ReaderIOEither[R]]
|
// Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize6]
|
// The inverse function is [Uneitherize6]
|
||||||
func Eitherize6[F ~func(context.Context, T0, T1, T2, T3, T4, T5) (R, error), T0, T1, T2, T3, T4, T5, R any](f F) func(T0, T1, T2, T3, T4, T5) ReaderIOEither[R] {
|
func Eitherize6[F ~func(context.Context, T0, T1, T2, T3, T4, T5) (R, error), T0, T1, T2, T3, T4, T5, R any](f F) func(T0, T1, T2, T3, T4, T5) ReaderIOEither[R] {
|
||||||
return G.Eitherize6[ReaderIOEither[R]](f)
|
return G.Eitherize6[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT6 converts 6 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple6].
|
||||||
|
func SequenceT6[T1, T2, T3, T4, T5, T6 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3], t4 ReaderIOEither[T4], t5 ReaderIOEither[T5], t6 ReaderIOEither[T6]) ReaderIOEither[T.Tuple6[T1, T2, T3, T4, T5, T6]] {
|
||||||
|
return G.SequenceT6[ReaderIOEither[T.Tuple6[T1, T2, T3, T4, T5, T6]]](t1, t2, t3, t4, t5, t6)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [ReaderIOEither[R]]
|
// Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize7]
|
// The inverse function is [Uneitherize7]
|
||||||
func Eitherize7[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6) (R, error), T0, T1, T2, T3, T4, T5, T6, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) ReaderIOEither[R] {
|
func Eitherize7[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6) (R, error), T0, T1, T2, T3, T4, T5, T6, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) ReaderIOEither[R] {
|
||||||
return G.Eitherize7[ReaderIOEither[R]](f)
|
return G.Eitherize7[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT7 converts 7 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple7].
|
||||||
|
func SequenceT7[T1, T2, T3, T4, T5, T6, T7 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3], t4 ReaderIOEither[T4], t5 ReaderIOEither[T5], t6 ReaderIOEither[T6], t7 ReaderIOEither[T7]) ReaderIOEither[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]] {
|
||||||
|
return G.SequenceT7[ReaderIOEither[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]](t1, t2, t3, t4, t5, t6, t7)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [ReaderIOEither[R]]
|
// Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize8]
|
// The inverse function is [Uneitherize8]
|
||||||
func Eitherize8[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) ReaderIOEither[R] {
|
func Eitherize8[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) ReaderIOEither[R] {
|
||||||
return G.Eitherize8[ReaderIOEither[R]](f)
|
return G.Eitherize8[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT8 converts 8 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple8].
|
||||||
|
func SequenceT8[T1, T2, T3, T4, T5, T6, T7, T8 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3], t4 ReaderIOEither[T4], t5 ReaderIOEither[T5], t6 ReaderIOEither[T6], t7 ReaderIOEither[T7], t8 ReaderIOEither[T8]) ReaderIOEither[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]] {
|
||||||
|
return G.SequenceT8[ReaderIOEither[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]](t1, t2, t3, t4, t5, t6, t7, t8)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [ReaderIOEither[R]]
|
// Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize9]
|
// The inverse function is [Uneitherize9]
|
||||||
func Eitherize9[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) ReaderIOEither[R] {
|
func Eitherize9[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) ReaderIOEither[R] {
|
||||||
return G.Eitherize9[ReaderIOEither[R]](f)
|
return G.Eitherize9[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT9 converts 9 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple9].
|
||||||
|
func SequenceT9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3], t4 ReaderIOEither[T4], t5 ReaderIOEither[T5], t6 ReaderIOEither[T6], t7 ReaderIOEither[T7], t8 ReaderIOEither[T8], t9 ReaderIOEither[T9]) ReaderIOEither[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]] {
|
||||||
|
return G.SequenceT9[ReaderIOEither[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]](t1, t2, t3, t4, t5, t6, t7, t8, t9)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [ReaderIOEither[R]]
|
// Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [ReaderIOEither[R]]
|
||||||
// The inverse function is [Uneitherize10]
|
// The inverse function is [Uneitherize10]
|
||||||
func Eitherize10[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) ReaderIOEither[R] {
|
func Eitherize10[F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) ReaderIOEither[R] {
|
||||||
return G.Eitherize10[ReaderIOEither[R]](f)
|
return G.Eitherize10[ReaderIOEither[R]](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT10 converts 10 [ReaderIOEither] into a [ReaderIOEither] of a [T.Tuple10].
|
||||||
|
func SequenceT10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t1 ReaderIOEither[T1], t2 ReaderIOEither[T2], t3 ReaderIOEither[T3], t4 ReaderIOEither[T4], t5 ReaderIOEither[T5], t6 ReaderIOEither[T6], t7 ReaderIOEither[T7], t8 ReaderIOEither[T8], t9 ReaderIOEither[T9], t10 ReaderIOEither[T10]) ReaderIOEither[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]] {
|
||||||
|
return G.SequenceT10[ReaderIOEither[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]](t1, t2, t3, t4, t5, t6, t7, t8, t9, t10)
|
||||||
}
|
}
|
||||||
|
@ -2,77 +2,499 @@ package generic
|
|||||||
|
|
||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:34.1526819 +0200 CEST m=+0.012063601
|
// 2023-07-20 16:14:27.3155005 +0200 CEST m=+0.020795301
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
|
||||||
E "github.com/IBM/fp-go/either"
|
E "github.com/IBM/fp-go/either"
|
||||||
RE "github.com/IBM/fp-go/readerioeither/generic"
|
RE "github.com/IBM/fp-go/readerioeither/generic"
|
||||||
|
A "github.com/IBM/fp-go/internal/apply"
|
||||||
|
T "github.com/IBM/fp-go/tuple"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GRA]
|
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize0]
|
// The inverse function is [Uneitherize0]
|
||||||
func Eitherize0[GRA ~func(context.Context) GIOA, F ~func(context.Context) (R, error), GIOA ~func() E.Either[error, R], R any](f F) func() GRA {
|
func Eitherize0[GRA ~func(context.Context) GIOA, F ~func(context.Context) (R, error), GIOA ~func() E.Either[error, R], R any](f F) func() GRA {
|
||||||
return RE.Eitherize0[GRA](f)
|
return RE.Eitherize0[GRA](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [GRA]
|
// Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize1]
|
// The inverse function is [Uneitherize1]
|
||||||
func Eitherize1[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0) (R, error), GIOA ~func() E.Either[error, R], T0, R any](f F) func(T0) GRA {
|
func Eitherize1[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0) (R, error), GIOA ~func() E.Either[error, R], T0, R any](f F) func(T0) GRA {
|
||||||
return RE.Eitherize1[GRA](f)
|
return RE.Eitherize1[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT1 converts 1 readers into a reader of a [T.Tuple1].
|
||||||
|
func SequenceT1[
|
||||||
|
GR_TUPLE1 ~func(context.Context) GIO_TUPLE1,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GIO_TUPLE1 ~func() E.Either[error, T.Tuple1[T1]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
T1 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
) GR_TUPLE1 {
|
||||||
|
return A.SequenceT1(
|
||||||
|
Map[GR_T1, GR_TUPLE1, GIO_T1],
|
||||||
|
t1,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [GRA]
|
// Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize2]
|
// The inverse function is [Uneitherize2]
|
||||||
func Eitherize2[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1) (R, error), GIOA ~func() E.Either[error, R], T0, T1, R any](f F) func(T0, T1) GRA {
|
func Eitherize2[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1) (R, error), GIOA ~func() E.Either[error, R], T0, T1, R any](f F) func(T0, T1) GRA {
|
||||||
return RE.Eitherize2[GRA](f)
|
return RE.Eitherize2[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT2 converts 2 readers into a reader of a [T.Tuple2].
|
||||||
|
func SequenceT2[
|
||||||
|
GR_TUPLE2 ~func(context.Context) GIO_TUPLE2,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GIO_TUPLE2 ~func() E.Either[error, T.Tuple2[T1, T2]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
T1,
|
||||||
|
T2 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
) GR_TUPLE2 {
|
||||||
|
return A.SequenceT2(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) T.Tuple2[T1, T2]], GIO_T1],
|
||||||
|
Ap[GR_TUPLE2, func(context.Context) func() E.Either[error, func(T2) T.Tuple2[T1, T2]], GR_T2],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [GRA]
|
// Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize3]
|
// The inverse function is [Uneitherize3]
|
||||||
func Eitherize3[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, R any](f F) func(T0, T1, T2) GRA {
|
func Eitherize3[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, R any](f F) func(T0, T1, T2) GRA {
|
||||||
return RE.Eitherize3[GRA](f)
|
return RE.Eitherize3[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT3 converts 3 readers into a reader of a [T.Tuple3].
|
||||||
|
func SequenceT3[
|
||||||
|
GR_TUPLE3 ~func(context.Context) GIO_TUPLE3,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GIO_TUPLE3 ~func() E.Either[error, T.Tuple3[T1, T2, T3]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
) GR_TUPLE3 {
|
||||||
|
return A.SequenceT3(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) T.Tuple3[T1, T2, T3]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) T.Tuple3[T1, T2, T3]], func(context.Context) func() E.Either[error, func(T2) func(T3) T.Tuple3[T1, T2, T3]], GR_T2],
|
||||||
|
Ap[GR_TUPLE3, func(context.Context) func() E.Either[error, func(T3) T.Tuple3[T1, T2, T3]], GR_T3],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [GRA]
|
// Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize4]
|
// The inverse function is [Uneitherize4]
|
||||||
func Eitherize4[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, R any](f F) func(T0, T1, T2, T3) GRA {
|
func Eitherize4[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, R any](f F) func(T0, T1, T2, T3) GRA {
|
||||||
return RE.Eitherize4[GRA](f)
|
return RE.Eitherize4[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT4 converts 4 readers into a reader of a [T.Tuple4].
|
||||||
|
func SequenceT4[
|
||||||
|
GR_TUPLE4 ~func(context.Context) GIO_TUPLE4,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GR_T4 ~func(context.Context) GIO_T4,
|
||||||
|
GIO_TUPLE4 ~func() E.Either[error, T.Tuple4[T1, T2, T3, T4]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
GIO_T4 ~func() E.Either[error, T4],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3,
|
||||||
|
T4 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
t4 GR_T4,
|
||||||
|
) GR_TUPLE4 {
|
||||||
|
return A.SequenceT4(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]], func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]], GR_T2],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T4) T.Tuple4[T1, T2, T3, T4]], func(context.Context) func() E.Either[error, func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]], GR_T3],
|
||||||
|
Ap[GR_TUPLE4, func(context.Context) func() E.Either[error, func(T4) T.Tuple4[T1, T2, T3, T4]], GR_T4],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
t4,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [GRA]
|
// Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize5]
|
// The inverse function is [Uneitherize5]
|
||||||
func Eitherize5[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
func Eitherize5[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
||||||
return RE.Eitherize5[GRA](f)
|
return RE.Eitherize5[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT5 converts 5 readers into a reader of a [T.Tuple5].
|
||||||
|
func SequenceT5[
|
||||||
|
GR_TUPLE5 ~func(context.Context) GIO_TUPLE5,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GR_T4 ~func(context.Context) GIO_T4,
|
||||||
|
GR_T5 ~func(context.Context) GIO_T5,
|
||||||
|
GIO_TUPLE5 ~func() E.Either[error, T.Tuple5[T1, T2, T3, T4, T5]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
GIO_T4 ~func() E.Either[error, T4],
|
||||||
|
GIO_T5 ~func() E.Either[error, T5],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3,
|
||||||
|
T4,
|
||||||
|
T5 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
t4 GR_T4,
|
||||||
|
t5 GR_T5,
|
||||||
|
) GR_TUPLE5 {
|
||||||
|
return A.SequenceT5(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]], func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]], GR_T2],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]], func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]], GR_T3],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T5) T.Tuple5[T1, T2, T3, T4, T5]], func(context.Context) func() E.Either[error, func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]], GR_T4],
|
||||||
|
Ap[GR_TUPLE5, func(context.Context) func() E.Either[error, func(T5) T.Tuple5[T1, T2, T3, T4, T5]], GR_T5],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
t4,
|
||||||
|
t5,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [GRA]
|
// Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize6]
|
// The inverse function is [Uneitherize6]
|
||||||
func Eitherize6[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
func Eitherize6[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
||||||
return RE.Eitherize6[GRA](f)
|
return RE.Eitherize6[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT6 converts 6 readers into a reader of a [T.Tuple6].
|
||||||
|
func SequenceT6[
|
||||||
|
GR_TUPLE6 ~func(context.Context) GIO_TUPLE6,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GR_T4 ~func(context.Context) GIO_T4,
|
||||||
|
GR_T5 ~func(context.Context) GIO_T5,
|
||||||
|
GR_T6 ~func(context.Context) GIO_T6,
|
||||||
|
GIO_TUPLE6 ~func() E.Either[error, T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
GIO_T4 ~func() E.Either[error, T4],
|
||||||
|
GIO_T5 ~func() E.Either[error, T5],
|
||||||
|
GIO_T6 ~func() E.Either[error, T6],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3,
|
||||||
|
T4,
|
||||||
|
T5,
|
||||||
|
T6 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
t4 GR_T4,
|
||||||
|
t5 GR_T5,
|
||||||
|
t6 GR_T6,
|
||||||
|
) GR_TUPLE6 {
|
||||||
|
return A.SequenceT6(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], GR_T2],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], GR_T3],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], GR_T4],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], func(context.Context) func() E.Either[error, func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], GR_T5],
|
||||||
|
Ap[GR_TUPLE6, func(context.Context) func() E.Either[error, func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]], GR_T6],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
t4,
|
||||||
|
t5,
|
||||||
|
t6,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [GRA]
|
// Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize7]
|
// The inverse function is [Uneitherize7]
|
||||||
func Eitherize7[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
func Eitherize7[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
||||||
return RE.Eitherize7[GRA](f)
|
return RE.Eitherize7[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT7 converts 7 readers into a reader of a [T.Tuple7].
|
||||||
|
func SequenceT7[
|
||||||
|
GR_TUPLE7 ~func(context.Context) GIO_TUPLE7,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GR_T4 ~func(context.Context) GIO_T4,
|
||||||
|
GR_T5 ~func(context.Context) GIO_T5,
|
||||||
|
GR_T6 ~func(context.Context) GIO_T6,
|
||||||
|
GR_T7 ~func(context.Context) GIO_T7,
|
||||||
|
GIO_TUPLE7 ~func() E.Either[error, T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
GIO_T4 ~func() E.Either[error, T4],
|
||||||
|
GIO_T5 ~func() E.Either[error, T5],
|
||||||
|
GIO_T6 ~func() E.Either[error, T6],
|
||||||
|
GIO_T7 ~func() E.Either[error, T7],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3,
|
||||||
|
T4,
|
||||||
|
T5,
|
||||||
|
T6,
|
||||||
|
T7 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
t4 GR_T4,
|
||||||
|
t5 GR_T5,
|
||||||
|
t6 GR_T6,
|
||||||
|
t7 GR_T7,
|
||||||
|
) GR_TUPLE7 {
|
||||||
|
return A.SequenceT7(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], GR_T2],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], GR_T3],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], GR_T4],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], GR_T5],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], func(context.Context) func() E.Either[error, func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], GR_T6],
|
||||||
|
Ap[GR_TUPLE7, func(context.Context) func() E.Either[error, func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]], GR_T7],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
t4,
|
||||||
|
t5,
|
||||||
|
t6,
|
||||||
|
t7,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [GRA]
|
// Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize8]
|
// The inverse function is [Uneitherize8]
|
||||||
func Eitherize8[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
func Eitherize8[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
||||||
return RE.Eitherize8[GRA](f)
|
return RE.Eitherize8[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT8 converts 8 readers into a reader of a [T.Tuple8].
|
||||||
|
func SequenceT8[
|
||||||
|
GR_TUPLE8 ~func(context.Context) GIO_TUPLE8,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GR_T4 ~func(context.Context) GIO_T4,
|
||||||
|
GR_T5 ~func(context.Context) GIO_T5,
|
||||||
|
GR_T6 ~func(context.Context) GIO_T6,
|
||||||
|
GR_T7 ~func(context.Context) GIO_T7,
|
||||||
|
GR_T8 ~func(context.Context) GIO_T8,
|
||||||
|
GIO_TUPLE8 ~func() E.Either[error, T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
GIO_T4 ~func() E.Either[error, T4],
|
||||||
|
GIO_T5 ~func() E.Either[error, T5],
|
||||||
|
GIO_T6 ~func() E.Either[error, T6],
|
||||||
|
GIO_T7 ~func() E.Either[error, T7],
|
||||||
|
GIO_T8 ~func() E.Either[error, T8],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3,
|
||||||
|
T4,
|
||||||
|
T5,
|
||||||
|
T6,
|
||||||
|
T7,
|
||||||
|
T8 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
t4 GR_T4,
|
||||||
|
t5 GR_T5,
|
||||||
|
t6 GR_T6,
|
||||||
|
t7 GR_T7,
|
||||||
|
t8 GR_T8,
|
||||||
|
) GR_TUPLE8 {
|
||||||
|
return A.SequenceT8(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GR_T2],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GR_T3],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GR_T4],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GR_T5],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], func(context.Context) func() E.Either[error, func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GR_T6],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], func(context.Context) func() E.Either[error, func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GR_T7],
|
||||||
|
Ap[GR_TUPLE8, func(context.Context) func() E.Either[error, func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]], GR_T8],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
t4,
|
||||||
|
t5,
|
||||||
|
t6,
|
||||||
|
t7,
|
||||||
|
t8,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [GRA]
|
// Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize9]
|
// The inverse function is [Uneitherize9]
|
||||||
func Eitherize9[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
func Eitherize9[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
||||||
return RE.Eitherize9[GRA](f)
|
return RE.Eitherize9[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT9 converts 9 readers into a reader of a [T.Tuple9].
|
||||||
|
func SequenceT9[
|
||||||
|
GR_TUPLE9 ~func(context.Context) GIO_TUPLE9,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GR_T4 ~func(context.Context) GIO_T4,
|
||||||
|
GR_T5 ~func(context.Context) GIO_T5,
|
||||||
|
GR_T6 ~func(context.Context) GIO_T6,
|
||||||
|
GR_T7 ~func(context.Context) GIO_T7,
|
||||||
|
GR_T8 ~func(context.Context) GIO_T8,
|
||||||
|
GR_T9 ~func(context.Context) GIO_T9,
|
||||||
|
GIO_TUPLE9 ~func() E.Either[error, T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
GIO_T4 ~func() E.Either[error, T4],
|
||||||
|
GIO_T5 ~func() E.Either[error, T5],
|
||||||
|
GIO_T6 ~func() E.Either[error, T6],
|
||||||
|
GIO_T7 ~func() E.Either[error, T7],
|
||||||
|
GIO_T8 ~func() E.Either[error, T8],
|
||||||
|
GIO_T9 ~func() E.Either[error, T9],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3,
|
||||||
|
T4,
|
||||||
|
T5,
|
||||||
|
T6,
|
||||||
|
T7,
|
||||||
|
T8,
|
||||||
|
T9 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
t4 GR_T4,
|
||||||
|
t5 GR_T5,
|
||||||
|
t6 GR_T6,
|
||||||
|
t7 GR_T7,
|
||||||
|
t8 GR_T8,
|
||||||
|
t9 GR_T9,
|
||||||
|
) GR_TUPLE9 {
|
||||||
|
return A.SequenceT9(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T2],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T3],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T4],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T5],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], func(context.Context) func() E.Either[error, func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T6],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], func(context.Context) func() E.Either[error, func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T7],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], func(context.Context) func() E.Either[error, func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T8],
|
||||||
|
Ap[GR_TUPLE9, func(context.Context) func() E.Either[error, func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]], GR_T9],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
t4,
|
||||||
|
t5,
|
||||||
|
t6,
|
||||||
|
t7,
|
||||||
|
t8,
|
||||||
|
t9,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [GRA]
|
// Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [GRA]
|
||||||
// The inverse function is [Uneitherize10]
|
// The inverse function is [Uneitherize10]
|
||||||
func Eitherize10[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
func Eitherize10[GRA ~func(context.Context) GIOA, F ~func(context.Context, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
||||||
return RE.Eitherize10[GRA](f)
|
return RE.Eitherize10[GRA](f)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SequenceT10 converts 10 readers into a reader of a [T.Tuple10].
|
||||||
|
func SequenceT10[
|
||||||
|
GR_TUPLE10 ~func(context.Context) GIO_TUPLE10,
|
||||||
|
GR_T1 ~func(context.Context) GIO_T1,
|
||||||
|
GR_T2 ~func(context.Context) GIO_T2,
|
||||||
|
GR_T3 ~func(context.Context) GIO_T3,
|
||||||
|
GR_T4 ~func(context.Context) GIO_T4,
|
||||||
|
GR_T5 ~func(context.Context) GIO_T5,
|
||||||
|
GR_T6 ~func(context.Context) GIO_T6,
|
||||||
|
GR_T7 ~func(context.Context) GIO_T7,
|
||||||
|
GR_T8 ~func(context.Context) GIO_T8,
|
||||||
|
GR_T9 ~func(context.Context) GIO_T9,
|
||||||
|
GR_T10 ~func(context.Context) GIO_T10,
|
||||||
|
GIO_TUPLE10 ~func() E.Either[error, T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||||
|
GIO_T1 ~func() E.Either[error, T1],
|
||||||
|
GIO_T2 ~func() E.Either[error, T2],
|
||||||
|
GIO_T3 ~func() E.Either[error, T3],
|
||||||
|
GIO_T4 ~func() E.Either[error, T4],
|
||||||
|
GIO_T5 ~func() E.Either[error, T5],
|
||||||
|
GIO_T6 ~func() E.Either[error, T6],
|
||||||
|
GIO_T7 ~func() E.Either[error, T7],
|
||||||
|
GIO_T8 ~func() E.Either[error, T8],
|
||||||
|
GIO_T9 ~func() E.Either[error, T9],
|
||||||
|
GIO_T10 ~func() E.Either[error, T10],
|
||||||
|
T1,
|
||||||
|
T2,
|
||||||
|
T3,
|
||||||
|
T4,
|
||||||
|
T5,
|
||||||
|
T6,
|
||||||
|
T7,
|
||||||
|
T8,
|
||||||
|
T9,
|
||||||
|
T10 any](
|
||||||
|
t1 GR_T1,
|
||||||
|
t2 GR_T2,
|
||||||
|
t3 GR_T3,
|
||||||
|
t4 GR_T4,
|
||||||
|
t5 GR_T5,
|
||||||
|
t6 GR_T6,
|
||||||
|
t7 GR_T7,
|
||||||
|
t8 GR_T8,
|
||||||
|
t9 GR_T9,
|
||||||
|
t10 GR_T10,
|
||||||
|
) GR_TUPLE10 {
|
||||||
|
return A.SequenceT10(
|
||||||
|
Map[GR_T1, func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GIO_T1],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T2],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T3],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T4],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T5],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T6],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T7],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T8],
|
||||||
|
Ap[func(context.Context) func() E.Either[error, func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], func(context.Context) func() E.Either[error, func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T9],
|
||||||
|
Ap[GR_TUPLE10, func(context.Context) func() E.Either[error, func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]], GR_T10],
|
||||||
|
t1,
|
||||||
|
t2,
|
||||||
|
t3,
|
||||||
|
t4,
|
||||||
|
t5,
|
||||||
|
t6,
|
||||||
|
t7,
|
||||||
|
t8,
|
||||||
|
t9,
|
||||||
|
t10,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,85 +0,0 @@
|
|||||||
package generic
|
|
||||||
|
|
||||||
import (
|
|
||||||
"context"
|
|
||||||
|
|
||||||
E "github.com/IBM/fp-go/either"
|
|
||||||
RE "github.com/IBM/fp-go/readerioeither/generic"
|
|
||||||
T "github.com/IBM/fp-go/tuple"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple
|
|
||||||
|
|
||||||
func SequenceT1[
|
|
||||||
GRT ~func(context.Context) GIOT,
|
|
||||||
GRA ~func(context.Context) GIOA,
|
|
||||||
|
|
||||||
GIOA ~func() E.Either[error, A],
|
|
||||||
GIOT ~func() E.Either[error, T.Tuple1[A]],
|
|
||||||
|
|
||||||
A any](a GRA) GRT {
|
|
||||||
return RE.SequenceT1[
|
|
||||||
GRA,
|
|
||||||
GRT,
|
|
||||||
](a)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SequenceT2[
|
|
||||||
GRT ~func(context.Context) GIOT,
|
|
||||||
GRA ~func(context.Context) GIOA,
|
|
||||||
GRB ~func(context.Context) GIOB,
|
|
||||||
|
|
||||||
GIOA ~func() E.Either[error, A],
|
|
||||||
GIOB ~func() E.Either[error, B],
|
|
||||||
GIOT ~func() E.Either[error, T.Tuple2[A, B]],
|
|
||||||
|
|
||||||
A, B any](a GRA, b GRB) GRT {
|
|
||||||
return RE.SequenceT2[
|
|
||||||
GRA,
|
|
||||||
GRB,
|
|
||||||
GRT,
|
|
||||||
](a, b)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SequenceT3[
|
|
||||||
GRT ~func(context.Context) GIOT,
|
|
||||||
GRA ~func(context.Context) GIOA,
|
|
||||||
GRB ~func(context.Context) GIOB,
|
|
||||||
GRC ~func(context.Context) GIOC,
|
|
||||||
|
|
||||||
GIOA ~func() E.Either[error, A],
|
|
||||||
GIOB ~func() E.Either[error, B],
|
|
||||||
GIOC ~func() E.Either[error, C],
|
|
||||||
GIOT ~func() E.Either[error, T.Tuple3[A, B, C]],
|
|
||||||
|
|
||||||
A, B, C any](a GRA, b GRB, c GRC) GRT {
|
|
||||||
return RE.SequenceT3[
|
|
||||||
GRA,
|
|
||||||
GRB,
|
|
||||||
GRC,
|
|
||||||
GRT,
|
|
||||||
](a, b, c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SequenceT4[
|
|
||||||
GRT ~func(context.Context) GIOT,
|
|
||||||
GRA ~func(context.Context) GIOA,
|
|
||||||
GRB ~func(context.Context) GIOB,
|
|
||||||
GRC ~func(context.Context) GIOC,
|
|
||||||
GRD ~func(context.Context) GIOD,
|
|
||||||
|
|
||||||
GIOA ~func() E.Either[error, A],
|
|
||||||
GIOB ~func() E.Either[error, B],
|
|
||||||
GIOC ~func() E.Either[error, C],
|
|
||||||
GIOD ~func() E.Either[error, D],
|
|
||||||
GIOT ~func() E.Either[error, T.Tuple4[A, B, C, D]],
|
|
||||||
|
|
||||||
A, B, C, D any](a GRA, b GRB, c GRC, d GRD) GRT {
|
|
||||||
return RE.SequenceT4[
|
|
||||||
GRA,
|
|
||||||
GRB,
|
|
||||||
GRC,
|
|
||||||
GRD,
|
|
||||||
GRT,
|
|
||||||
](a, b, c, d)
|
|
||||||
}
|
|
@ -1,24 +0,0 @@
|
|||||||
package readerioeither
|
|
||||||
|
|
||||||
import (
|
|
||||||
G "github.com/IBM/fp-go/context/readerioeither/generic"
|
|
||||||
T "github.com/IBM/fp-go/tuple"
|
|
||||||
)
|
|
||||||
|
|
||||||
// SequenceT converts n inputs of higher kinded types into a higher kinded types of n strongly typed values, represented as a tuple
|
|
||||||
|
|
||||||
func SequenceT1[A any](a ReaderIOEither[A]) ReaderIOEither[T.Tuple1[A]] {
|
|
||||||
return G.SequenceT1[ReaderIOEither[T.Tuple1[A]]](a)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SequenceT2[A, B any](a ReaderIOEither[A], b ReaderIOEither[B]) ReaderIOEither[T.Tuple2[A, B]] {
|
|
||||||
return G.SequenceT2[ReaderIOEither[T.Tuple2[A, B]]](a, b)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SequenceT3[A, B, C any](a ReaderIOEither[A], b ReaderIOEither[B], c ReaderIOEither[C]) ReaderIOEither[T.Tuple3[A, B, C]] {
|
|
||||||
return G.SequenceT3[ReaderIOEither[T.Tuple3[A, B, C]]](a, b, c)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SequenceT4[A, B, C, D any](a ReaderIOEither[A], b ReaderIOEither[B], c ReaderIOEither[C], d ReaderIOEither[D]) ReaderIOEither[T.Tuple4[A, B, C, D]] {
|
|
||||||
return G.SequenceT4[ReaderIOEither[T.Tuple4[A, B, C, D]]](a, b, c, d)
|
|
||||||
}
|
|
@ -1,4 +1,18 @@
|
|||||||
// Package readerioeither implements a specialization of the Reader monad assuming a golang context as the context of the monad and a standard golang error
|
// Copyright (c) 2023 IBM Corp.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// 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 readerioeither
|
package readerioeither
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
949
either/gen.go
949
either/gen.go
File diff suppressed because it is too large
Load Diff
@ -1,454 +1,450 @@
|
|||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:40.5224382 +0200 CEST m=+0.122863501
|
// 2023-07-20 16:14:35.0470953 +0200 CEST m=+0.022083401
|
||||||
package function
|
package function
|
||||||
|
|
||||||
// Combinations for a total of 1 arguments
|
// Combinations for a total of 1 arguments
|
||||||
|
|
||||||
// Bind1of1 takes a function with 1 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
// Bind1of1 takes a function with 1 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
||||||
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
||||||
func Bind1of1[F ~func(T1) R, T1, R any](f F) func(T1) func() R {
|
func Bind1of1[F ~func(T1) R, T1, R any](f F) func(T1) func() R {
|
||||||
return func(t1 T1) func() R {
|
return func(t1 T1) func() R {
|
||||||
return func() R {
|
return func() R {
|
||||||
return f(t1)
|
return f(t1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore1of1 takes a function with 0 parameters and returns a new function with 1 parameters that will ignore the values at positions [1] and pass the remaining 0 parameters to the original function
|
// Ignore1of1 takes a function with 0 parameters and returns a new function with 1 parameters that will ignore the values at positions [1] and pass the remaining 0 parameters to the original function
|
||||||
func Ignore1of1[T1 any, F ~func() R, R any](f F) func(T1) R {
|
func Ignore1of1[T1 any, F ~func() R, R any](f F) func(T1) R {
|
||||||
return func(t1 T1) R {
|
return func(t1 T1) R {
|
||||||
return f()
|
return f()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Combinations for a total of 2 arguments
|
// Combinations for a total of 2 arguments
|
||||||
|
|
||||||
// Bind1of2 takes a function with 2 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
// Bind1of2 takes a function with 2 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [2] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [2] of the original function.
|
||||||
func Bind1of2[F ~func(T1, T2) R, T1, T2, R any](f F) func(T1) func(T2) R {
|
func Bind1of2[F ~func(T1, T2) R, T1, T2, R any](f F) func(T1) func(T2) R {
|
||||||
return func(t1 T1) func(T2) R {
|
return func(t1 T1) func(T2) R {
|
||||||
return func(t2 T2) R {
|
return func(t2 T2) R {
|
||||||
return f(t1, t2)
|
return f(t1, t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore1of2 takes a function with 1 parameters and returns a new function with 2 parameters that will ignore the values at positions [1] and pass the remaining 1 parameters to the original function
|
// Ignore1of2 takes a function with 1 parameters and returns a new function with 2 parameters that will ignore the values at positions [1] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore1of2[T1 any, F ~func(T2) R, T2, R any](f F) func(T1, T2) R {
|
func Ignore1of2[T1 any, F ~func(T2) R, T2, R any](f F) func(T1, T2) R {
|
||||||
return func(t1 T1, t2 T2) R {
|
return func(t1 T1, t2 T2) R {
|
||||||
return f(t2)
|
return f(t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind2of2 takes a function with 2 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [2] of the original function.
|
// Bind2of2 takes a function with 2 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [2] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [1] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [1] of the original function.
|
||||||
func Bind2of2[F ~func(T1, T2) R, T1, T2, R any](f F) func(T2) func(T1) R {
|
func Bind2of2[F ~func(T1, T2) R, T1, T2, R any](f F) func(T2) func(T1) R {
|
||||||
return func(t2 T2) func(T1) R {
|
return func(t2 T2) func(T1) R {
|
||||||
return func(t1 T1) R {
|
return func(t1 T1) R {
|
||||||
return f(t1, t2)
|
return f(t1, t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore2of2 takes a function with 1 parameters and returns a new function with 2 parameters that will ignore the values at positions [2] and pass the remaining 1 parameters to the original function
|
// Ignore2of2 takes a function with 1 parameters and returns a new function with 2 parameters that will ignore the values at positions [2] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore2of2[T2 any, F ~func(T1) R, T1, R any](f F) func(T1, T2) R {
|
func Ignore2of2[T2 any, F ~func(T1) R, T1, R any](f F) func(T1, T2) R {
|
||||||
return func(t1 T1, t2 T2) R {
|
return func(t1 T1, t2 T2) R {
|
||||||
return f(t1)
|
return f(t1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind12of2 takes a function with 2 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 2] of the original function.
|
// Bind12of2 takes a function with 2 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 2] of the original function.
|
||||||
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
||||||
func Bind12of2[F ~func(T1, T2) R, T1, T2, R any](f F) func(T1, T2) func() R {
|
func Bind12of2[F ~func(T1, T2) R, T1, T2, R any](f F) func(T1, T2) func() R {
|
||||||
return func(t1 T1, t2 T2) func() R {
|
return func(t1 T1, t2 T2) func() R {
|
||||||
return func() R {
|
return func() R {
|
||||||
return f(t1, t2)
|
return f(t1, t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore12of2 takes a function with 0 parameters and returns a new function with 2 parameters that will ignore the values at positions [1, 2] and pass the remaining 0 parameters to the original function
|
// Ignore12of2 takes a function with 0 parameters and returns a new function with 2 parameters that will ignore the values at positions [1, 2] and pass the remaining 0 parameters to the original function
|
||||||
func Ignore12of2[T1, T2 any, F ~func() R, R any](f F) func(T1, T2) R {
|
func Ignore12of2[T1, T2 any, F ~func() R, R any](f F) func(T1, T2) R {
|
||||||
return func(t1 T1, t2 T2) R {
|
return func(t1 T1, t2 T2) R {
|
||||||
return f()
|
return f()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Combinations for a total of 3 arguments
|
// Combinations for a total of 3 arguments
|
||||||
|
|
||||||
// Bind1of3 takes a function with 3 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
// Bind1of3 takes a function with 3 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [2, 3] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [2, 3] of the original function.
|
||||||
func Bind1of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1) func(T2, T3) R {
|
func Bind1of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1) func(T2, T3) R {
|
||||||
return func(t1 T1) func(T2, T3) R {
|
return func(t1 T1) func(T2, T3) R {
|
||||||
return func(t2 T2, t3 T3) R {
|
return func(t2 T2, t3 T3) R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore1of3 takes a function with 2 parameters and returns a new function with 3 parameters that will ignore the values at positions [1] and pass the remaining 2 parameters to the original function
|
// Ignore1of3 takes a function with 2 parameters and returns a new function with 3 parameters that will ignore the values at positions [1] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore1of3[T1 any, F ~func(T2, T3) R, T2, T3, R any](f F) func(T1, T2, T3) R {
|
func Ignore1of3[T1 any, F ~func(T2, T3) R, T2, T3, R any](f F) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f(t2, t3)
|
return f(t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind2of3 takes a function with 3 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [2] of the original function.
|
// Bind2of3 takes a function with 3 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [2] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [1, 3] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [1, 3] of the original function.
|
||||||
func Bind2of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T2) func(T1, T3) R {
|
func Bind2of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T2) func(T1, T3) R {
|
||||||
return func(t2 T2) func(T1, T3) R {
|
return func(t2 T2) func(T1, T3) R {
|
||||||
return func(t1 T1, t3 T3) R {
|
return func(t1 T1, t3 T3) R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore2of3 takes a function with 2 parameters and returns a new function with 3 parameters that will ignore the values at positions [2] and pass the remaining 2 parameters to the original function
|
// Ignore2of3 takes a function with 2 parameters and returns a new function with 3 parameters that will ignore the values at positions [2] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore2of3[T2 any, F ~func(T1, T3) R, T1, T3, R any](f F) func(T1, T2, T3) R {
|
func Ignore2of3[T2 any, F ~func(T1, T3) R, T1, T3, R any](f F) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f(t1, t3)
|
return f(t1, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind3of3 takes a function with 3 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [3] of the original function.
|
// Bind3of3 takes a function with 3 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [3] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [1, 2] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [1, 2] of the original function.
|
||||||
func Bind3of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T3) func(T1, T2) R {
|
func Bind3of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T3) func(T1, T2) R {
|
||||||
return func(t3 T3) func(T1, T2) R {
|
return func(t3 T3) func(T1, T2) R {
|
||||||
return func(t1 T1, t2 T2) R {
|
return func(t1 T1, t2 T2) R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore3of3 takes a function with 2 parameters and returns a new function with 3 parameters that will ignore the values at positions [3] and pass the remaining 2 parameters to the original function
|
// Ignore3of3 takes a function with 2 parameters and returns a new function with 3 parameters that will ignore the values at positions [3] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore3of3[T3 any, F ~func(T1, T2) R, T1, T2, R any](f F) func(T1, T2, T3) R {
|
func Ignore3of3[T3 any, F ~func(T1, T2) R, T1, T2, R any](f F) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f(t1, t2)
|
return f(t1, t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind12of3 takes a function with 3 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 2] of the original function.
|
// Bind12of3 takes a function with 3 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 2] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [3] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [3] of the original function.
|
||||||
func Bind12of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T2) func(T3) R {
|
func Bind12of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T2) func(T3) R {
|
||||||
return func(t1 T1, t2 T2) func(T3) R {
|
return func(t1 T1, t2 T2) func(T3) R {
|
||||||
return func(t3 T3) R {
|
return func(t3 T3) R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore12of3 takes a function with 1 parameters and returns a new function with 3 parameters that will ignore the values at positions [1, 2] and pass the remaining 1 parameters to the original function
|
// Ignore12of3 takes a function with 1 parameters and returns a new function with 3 parameters that will ignore the values at positions [1, 2] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore12of3[T1, T2 any, F ~func(T3) R, T3, R any](f F) func(T1, T2, T3) R {
|
func Ignore12of3[T1, T2 any, F ~func(T3) R, T3, R any](f F) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f(t3)
|
return f(t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind13of3 takes a function with 3 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 3] of the original function.
|
// Bind13of3 takes a function with 3 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 3] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [2] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [2] of the original function.
|
||||||
func Bind13of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T3) func(T2) R {
|
func Bind13of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T3) func(T2) R {
|
||||||
return func(t1 T1, t3 T3) func(T2) R {
|
return func(t1 T1, t3 T3) func(T2) R {
|
||||||
return func(t2 T2) R {
|
return func(t2 T2) R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore13of3 takes a function with 1 parameters and returns a new function with 3 parameters that will ignore the values at positions [1, 3] and pass the remaining 1 parameters to the original function
|
// Ignore13of3 takes a function with 1 parameters and returns a new function with 3 parameters that will ignore the values at positions [1, 3] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore13of3[T1, T3 any, F ~func(T2) R, T2, R any](f F) func(T1, T2, T3) R {
|
func Ignore13of3[T1, T3 any, F ~func(T2) R, T2, R any](f F) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f(t2)
|
return f(t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind23of3 takes a function with 3 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [2, 3] of the original function.
|
// Bind23of3 takes a function with 3 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [2, 3] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [1] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [1] of the original function.
|
||||||
func Bind23of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T2, T3) func(T1) R {
|
func Bind23of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T2, T3) func(T1) R {
|
||||||
return func(t2 T2, t3 T3) func(T1) R {
|
return func(t2 T2, t3 T3) func(T1) R {
|
||||||
return func(t1 T1) R {
|
return func(t1 T1) R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore23of3 takes a function with 1 parameters and returns a new function with 3 parameters that will ignore the values at positions [2, 3] and pass the remaining 1 parameters to the original function
|
// Ignore23of3 takes a function with 1 parameters and returns a new function with 3 parameters that will ignore the values at positions [2, 3] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore23of3[T2, T3 any, F ~func(T1) R, T1, R any](f F) func(T1, T2, T3) R {
|
func Ignore23of3[T2, T3 any, F ~func(T1) R, T1, R any](f F) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f(t1)
|
return f(t1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind123of3 takes a function with 3 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 2, 3] of the original function.
|
// Bind123of3 takes a function with 3 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 2, 3] of the original function.
|
||||||
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
||||||
func Bind123of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T2, T3) func() R {
|
func Bind123of3[F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T2, T3) func() R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) func() R {
|
return func(t1 T1, t2 T2, t3 T3) func() R {
|
||||||
return func() R {
|
return func() R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore123of3 takes a function with 0 parameters and returns a new function with 3 parameters that will ignore the values at positions [1, 2, 3] and pass the remaining 0 parameters to the original function
|
// Ignore123of3 takes a function with 0 parameters and returns a new function with 3 parameters that will ignore the values at positions [1, 2, 3] and pass the remaining 0 parameters to the original function
|
||||||
func Ignore123of3[T1, T2, T3 any, F ~func() R, R any](f F) func(T1, T2, T3) R {
|
func Ignore123of3[T1, T2, T3 any, F ~func() R, R any](f F) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f()
|
return f()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Combinations for a total of 4 arguments
|
// Combinations for a total of 4 arguments
|
||||||
|
|
||||||
// Bind1of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
// Bind1of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [1] of the original function.
|
||||||
// The return value of is a function with the remaining 3 parameters at positions [2, 3, 4] of the original function.
|
// The return value of is a function with the remaining 3 parameters at positions [2, 3, 4] of the original function.
|
||||||
func Bind1of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1) func(T2, T3, T4) R {
|
func Bind1of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1) func(T2, T3, T4) R {
|
||||||
return func(t1 T1) func(T2, T3, T4) R {
|
return func(t1 T1) func(T2, T3, T4) R {
|
||||||
return func(t2 T2, t3 T3, t4 T4) R {
|
return func(t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore1of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [1] and pass the remaining 3 parameters to the original function
|
// Ignore1of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [1] and pass the remaining 3 parameters to the original function
|
||||||
func Ignore1of4[T1 any, F ~func(T2, T3, T4) R, T2, T3, T4, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore1of4[T1 any, F ~func(T2, T3, T4) R, T2, T3, T4, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t2, t3, t4)
|
return f(t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind2of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [2] of the original function.
|
// Bind2of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [2] of the original function.
|
||||||
// The return value of is a function with the remaining 3 parameters at positions [1, 3, 4] of the original function.
|
// The return value of is a function with the remaining 3 parameters at positions [1, 3, 4] of the original function.
|
||||||
func Bind2of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2) func(T1, T3, T4) R {
|
func Bind2of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2) func(T1, T3, T4) R {
|
||||||
return func(t2 T2) func(T1, T3, T4) R {
|
return func(t2 T2) func(T1, T3, T4) R {
|
||||||
return func(t1 T1, t3 T3, t4 T4) R {
|
return func(t1 T1, t3 T3, t4 T4) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore2of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [2] and pass the remaining 3 parameters to the original function
|
// Ignore2of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [2] and pass the remaining 3 parameters to the original function
|
||||||
func Ignore2of4[T2 any, F ~func(T1, T3, T4) R, T1, T3, T4, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore2of4[T2 any, F ~func(T1, T3, T4) R, T1, T3, T4, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1, t3, t4)
|
return f(t1, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind3of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [3] of the original function.
|
// Bind3of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [3] of the original function.
|
||||||
// The return value of is a function with the remaining 3 parameters at positions [1, 2, 4] of the original function.
|
// The return value of is a function with the remaining 3 parameters at positions [1, 2, 4] of the original function.
|
||||||
func Bind3of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T3) func(T1, T2, T4) R {
|
func Bind3of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T3) func(T1, T2, T4) R {
|
||||||
return func(t3 T3) func(T1, T2, T4) R {
|
return func(t3 T3) func(T1, T2, T4) R {
|
||||||
return func(t1 T1, t2 T2, t4 T4) R {
|
return func(t1 T1, t2 T2, t4 T4) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore3of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [3] and pass the remaining 3 parameters to the original function
|
// Ignore3of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [3] and pass the remaining 3 parameters to the original function
|
||||||
func Ignore3of4[T3 any, F ~func(T1, T2, T4) R, T1, T2, T4, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore3of4[T3 any, F ~func(T1, T2, T4) R, T1, T2, T4, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1, t2, t4)
|
return f(t1, t2, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind4of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [4] of the original function.
|
// Bind4of4 takes a function with 4 parameters and returns a new function with 1 parameters that will bind these parameters to the positions [4] of the original function.
|
||||||
// The return value of is a function with the remaining 3 parameters at positions [1, 2, 3] of the original function.
|
// The return value of is a function with the remaining 3 parameters at positions [1, 2, 3] of the original function.
|
||||||
func Bind4of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T4) func(T1, T2, T3) R {
|
func Bind4of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T4) func(T1, T2, T3) R {
|
||||||
return func(t4 T4) func(T1, T2, T3) R {
|
return func(t4 T4) func(T1, T2, T3) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) R {
|
return func(t1 T1, t2 T2, t3 T3) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore4of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [4] and pass the remaining 3 parameters to the original function
|
// Ignore4of4 takes a function with 3 parameters and returns a new function with 4 parameters that will ignore the values at positions [4] and pass the remaining 3 parameters to the original function
|
||||||
func Ignore4of4[T4 any, F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore4of4[T4 any, F ~func(T1, T2, T3) R, T1, T2, T3, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1, t2, t3)
|
return f(t1, t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind12of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 2] of the original function.
|
// Bind12of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 2] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [3, 4] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [3, 4] of the original function.
|
||||||
func Bind12of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2) func(T3, T4) R {
|
func Bind12of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2) func(T3, T4) R {
|
||||||
return func(t1 T1, t2 T2) func(T3, T4) R {
|
return func(t1 T1, t2 T2) func(T3, T4) R {
|
||||||
return func(t3 T3, t4 T4) R {
|
return func(t3 T3, t4 T4) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore12of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2] and pass the remaining 2 parameters to the original function
|
// Ignore12of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore12of4[T1, T2 any, F ~func(T3, T4) R, T3, T4, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore12of4[T1, T2 any, F ~func(T3, T4) R, T3, T4, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t3, t4)
|
return f(t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind13of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 3] of the original function.
|
// Bind13of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 3] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [2, 4] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [2, 4] of the original function.
|
||||||
func Bind13of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T3) func(T2, T4) R {
|
func Bind13of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T3) func(T2, T4) R {
|
||||||
return func(t1 T1, t3 T3) func(T2, T4) R {
|
return func(t1 T1, t3 T3) func(T2, T4) R {
|
||||||
return func(t2 T2, t4 T4) R {
|
return func(t2 T2, t4 T4) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore13of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 3] and pass the remaining 2 parameters to the original function
|
// Ignore13of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 3] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore13of4[T1, T3 any, F ~func(T2, T4) R, T2, T4, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore13of4[T1, T3 any, F ~func(T2, T4) R, T2, T4, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t2, t4)
|
return f(t2, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind14of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 4] of the original function.
|
// Bind14of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [1, 4] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [2, 3] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [2, 3] of the original function.
|
||||||
func Bind14of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T4) func(T2, T3) R {
|
func Bind14of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T4) func(T2, T3) R {
|
||||||
return func(t1 T1, t4 T4) func(T2, T3) R {
|
return func(t1 T1, t4 T4) func(T2, T3) R {
|
||||||
return func(t2 T2, t3 T3) R {
|
return func(t2 T2, t3 T3) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore14of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 4] and pass the remaining 2 parameters to the original function
|
// Ignore14of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 4] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore14of4[T1, T4 any, F ~func(T2, T3) R, T2, T3, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore14of4[T1, T4 any, F ~func(T2, T3) R, T2, T3, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t2, t3)
|
return f(t2, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind23of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [2, 3] of the original function.
|
// Bind23of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [2, 3] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [1, 4] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [1, 4] of the original function.
|
||||||
func Bind23of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2, T3) func(T1, T4) R {
|
func Bind23of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2, T3) func(T1, T4) R {
|
||||||
return func(t2 T2, t3 T3) func(T1, T4) R {
|
return func(t2 T2, t3 T3) func(T1, T4) R {
|
||||||
return func(t1 T1, t4 T4) R {
|
return func(t1 T1, t4 T4) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore23of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [2, 3] and pass the remaining 2 parameters to the original function
|
// Ignore23of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [2, 3] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore23of4[T2, T3 any, F ~func(T1, T4) R, T1, T4, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore23of4[T2, T3 any, F ~func(T1, T4) R, T1, T4, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1, t4)
|
return f(t1, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind24of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [2, 4] of the original function.
|
// Bind24of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [2, 4] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [1, 3] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [1, 3] of the original function.
|
||||||
func Bind24of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2, T4) func(T1, T3) R {
|
func Bind24of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2, T4) func(T1, T3) R {
|
||||||
return func(t2 T2, t4 T4) func(T1, T3) R {
|
return func(t2 T2, t4 T4) func(T1, T3) R {
|
||||||
return func(t1 T1, t3 T3) R {
|
return func(t1 T1, t3 T3) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore24of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [2, 4] and pass the remaining 2 parameters to the original function
|
// Ignore24of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [2, 4] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore24of4[T2, T4 any, F ~func(T1, T3) R, T1, T3, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore24of4[T2, T4 any, F ~func(T1, T3) R, T1, T3, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1, t3)
|
return f(t1, t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind34of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [3, 4] of the original function.
|
// Bind34of4 takes a function with 4 parameters and returns a new function with 2 parameters that will bind these parameters to the positions [3, 4] of the original function.
|
||||||
// The return value of is a function with the remaining 2 parameters at positions [1, 2] of the original function.
|
// The return value of is a function with the remaining 2 parameters at positions [1, 2] of the original function.
|
||||||
func Bind34of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T3, T4) func(T1, T2) R {
|
func Bind34of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T3, T4) func(T1, T2) R {
|
||||||
return func(t3 T3, t4 T4) func(T1, T2) R {
|
return func(t3 T3, t4 T4) func(T1, T2) R {
|
||||||
return func(t1 T1, t2 T2) R {
|
return func(t1 T1, t2 T2) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore34of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [3, 4] and pass the remaining 2 parameters to the original function
|
// Ignore34of4 takes a function with 2 parameters and returns a new function with 4 parameters that will ignore the values at positions [3, 4] and pass the remaining 2 parameters to the original function
|
||||||
func Ignore34of4[T3, T4 any, F ~func(T1, T2) R, T1, T2, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore34of4[T3, T4 any, F ~func(T1, T2) R, T1, T2, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1, t2)
|
return f(t1, t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind123of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 2, 3] of the original function.
|
// Bind123of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 2, 3] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [4] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [4] of the original function.
|
||||||
func Bind123of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2, T3) func(T4) R {
|
func Bind123of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2, T3) func(T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3) func(T4) R {
|
return func(t1 T1, t2 T2, t3 T3) func(T4) R {
|
||||||
return func(t4 T4) R {
|
return func(t4 T4) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore123of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2, 3] and pass the remaining 1 parameters to the original function
|
// Ignore123of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2, 3] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore123of4[T1, T2, T3 any, F ~func(T4) R, T4, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore123of4[T1, T2, T3 any, F ~func(T4) R, T4, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t4)
|
return f(t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind124of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 2, 4] of the original function.
|
// Bind124of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 2, 4] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [3] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [3] of the original function.
|
||||||
func Bind124of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2, T4) func(T3) R {
|
func Bind124of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2, T4) func(T3) R {
|
||||||
return func(t1 T1, t2 T2, t4 T4) func(T3) R {
|
return func(t1 T1, t2 T2, t4 T4) func(T3) R {
|
||||||
return func(t3 T3) R {
|
return func(t3 T3) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore124of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2, 4] and pass the remaining 1 parameters to the original function
|
// Ignore124of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2, 4] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore124of4[T1, T2, T4 any, F ~func(T3) R, T3, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore124of4[T1, T2, T4 any, F ~func(T3) R, T3, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t3)
|
return f(t3)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind134of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 3, 4] of the original function.
|
// Bind134of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [1, 3, 4] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [2] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [2] of the original function.
|
||||||
func Bind134of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T3, T4) func(T2) R {
|
func Bind134of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T3, T4) func(T2) R {
|
||||||
return func(t1 T1, t3 T3, t4 T4) func(T2) R {
|
return func(t1 T1, t3 T3, t4 T4) func(T2) R {
|
||||||
return func(t2 T2) R {
|
return func(t2 T2) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore134of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 3, 4] and pass the remaining 1 parameters to the original function
|
// Ignore134of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 3, 4] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore134of4[T1, T3, T4 any, F ~func(T2) R, T2, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore134of4[T1, T3, T4 any, F ~func(T2) R, T2, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t2)
|
return f(t2)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind234of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [2, 3, 4] of the original function.
|
// Bind234of4 takes a function with 4 parameters and returns a new function with 3 parameters that will bind these parameters to the positions [2, 3, 4] of the original function.
|
||||||
// The return value of is a function with the remaining 1 parameters at positions [1] of the original function.
|
// The return value of is a function with the remaining 1 parameters at positions [1] of the original function.
|
||||||
func Bind234of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2, T3, T4) func(T1) R {
|
func Bind234of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T2, T3, T4) func(T1) R {
|
||||||
return func(t2 T2, t3 T3, t4 T4) func(T1) R {
|
return func(t2 T2, t3 T3, t4 T4) func(T1) R {
|
||||||
return func(t1 T1) R {
|
return func(t1 T1) R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore234of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [2, 3, 4] and pass the remaining 1 parameters to the original function
|
// Ignore234of4 takes a function with 1 parameters and returns a new function with 4 parameters that will ignore the values at positions [2, 3, 4] and pass the remaining 1 parameters to the original function
|
||||||
func Ignore234of4[T2, T3, T4 any, F ~func(T1) R, T1, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore234of4[T2, T3, T4 any, F ~func(T1) R, T1, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f(t1)
|
return f(t1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind1234of4 takes a function with 4 parameters and returns a new function with 4 parameters that will bind these parameters to the positions [1, 2, 3, 4] of the original function.
|
// Bind1234of4 takes a function with 4 parameters and returns a new function with 4 parameters that will bind these parameters to the positions [1, 2, 3, 4] of the original function.
|
||||||
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
// The return value of is a function with the remaining 0 parameters at positions [] of the original function.
|
||||||
func Bind1234of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2, T3, T4) func() R {
|
func Bind1234of4[F ~func(T1, T2, T3, T4) R, T1, T2, T3, T4, R any](f F) func(T1, T2, T3, T4) func() R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) func() R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) func() R {
|
||||||
return func() R {
|
return func() R {
|
||||||
return f(t1, t2, t3, t4)
|
return f(t1, t2, t3, t4)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ignore1234of4 takes a function with 0 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2, 3, 4] and pass the remaining 0 parameters to the original function
|
// Ignore1234of4 takes a function with 0 parameters and returns a new function with 4 parameters that will ignore the values at positions [1, 2, 3, 4] and pass the remaining 0 parameters to the original function
|
||||||
func Ignore1234of4[T1, T2, T3, T4 any, F ~func() R, R any](f F) func(T1, T2, T3, T4) R {
|
func Ignore1234of4[T1, T2, T3, T4 any, F ~func() R, R any](f F) func(T1, T2, T3, T4) R {
|
||||||
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
return func(t1 T1, t2 T2, t3 T3, t4 T4) R {
|
||||||
return f()
|
return f()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
1999
function/gen.go
1999
function/gen.go
File diff suppressed because it is too large
Load Diff
773
identity/gen.go
773
identity/gen.go
@ -1,8 +1,9 @@
|
|||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:43.8898665 +0200 CEST m=+0.018620401
|
// 2023-07-20 16:14:38.2378673 +0200 CEST m=+0.054938201
|
||||||
package identity
|
package identity
|
||||||
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
A "github.com/IBM/fp-go/internal/apply"
|
A "github.com/IBM/fp-go/internal/apply"
|
||||||
T "github.com/IBM/fp-go/tuple"
|
T "github.com/IBM/fp-go/tuple"
|
||||||
@ -10,495 +11,495 @@ import (
|
|||||||
|
|
||||||
// SequenceT1 converts 1 parameters of [T] into a [Tuple1].
|
// SequenceT1 converts 1 parameters of [T] into a [Tuple1].
|
||||||
func SequenceT1[T1 any](t1 T1) T.Tuple1[T1] {
|
func SequenceT1[T1 any](t1 T1) T.Tuple1[T1] {
|
||||||
return A.SequenceT1(
|
return A.SequenceT1(
|
||||||
Map[T1, T.Tuple1[T1]],
|
Map[T1, T.Tuple1[T1]],
|
||||||
t1,
|
t1,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple1 converts a [Tuple1] of [T] into an [Tuple1].
|
// SequenceTuple1 converts a [Tuple1] of [T] into an [Tuple1].
|
||||||
func SequenceTuple1[T1 any](t T.Tuple1[T1]) T.Tuple1[T1] {
|
func SequenceTuple1[T1 any](t T.Tuple1[T1]) T.Tuple1[T1] {
|
||||||
return A.SequenceTuple1(
|
return A.SequenceTuple1(
|
||||||
Map[T1, T.Tuple1[T1]],
|
Map[T1, T.Tuple1[T1]],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple1 converts a [Tuple1] of [A] via transformation functions transforming [A] to [A] into a [Tuple1].
|
// TraverseTuple1 converts a [Tuple1] of [A] via transformation functions transforming [A] to [A] into a [Tuple1].
|
||||||
func TraverseTuple1[F1 ~func(A1) T1, A1, T1 any](f1 F1) func(T.Tuple1[A1]) T.Tuple1[T1] {
|
func TraverseTuple1[F1 ~func(A1) T1, A1, T1 any](f1 F1) func (T.Tuple1[A1]) T.Tuple1[T1] {
|
||||||
return func(t T.Tuple1[A1]) T.Tuple1[T1] {
|
return func(t T.Tuple1[A1]) T.Tuple1[T1] {
|
||||||
return A.TraverseTuple1(
|
return A.TraverseTuple1(
|
||||||
Map[T1, T.Tuple1[T1]],
|
Map[T1, T.Tuple1[T1]],
|
||||||
f1,
|
f1,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT2 converts 2 parameters of [T] into a [Tuple2].
|
// SequenceT2 converts 2 parameters of [T] into a [Tuple2].
|
||||||
func SequenceT2[T1, T2 any](t1 T1, t2 T2) T.Tuple2[T1, T2] {
|
func SequenceT2[T1, T2 any](t1 T1, t2 T2) T.Tuple2[T1, T2] {
|
||||||
return A.SequenceT2(
|
return A.SequenceT2(
|
||||||
Map[T1, func(T2) T.Tuple2[T1, T2]],
|
Map[T1, func(T2) T.Tuple2[T1, T2]],
|
||||||
Ap[T.Tuple2[T1, T2], T2],
|
Ap[T.Tuple2[T1, T2], T2],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple2 converts a [Tuple2] of [T] into an [Tuple2].
|
// SequenceTuple2 converts a [Tuple2] of [T] into an [Tuple2].
|
||||||
func SequenceTuple2[T1, T2 any](t T.Tuple2[T1, T2]) T.Tuple2[T1, T2] {
|
func SequenceTuple2[T1, T2 any](t T.Tuple2[T1, T2]) T.Tuple2[T1, T2] {
|
||||||
return A.SequenceTuple2(
|
return A.SequenceTuple2(
|
||||||
Map[T1, func(T2) T.Tuple2[T1, T2]],
|
Map[T1, func(T2) T.Tuple2[T1, T2]],
|
||||||
Ap[T.Tuple2[T1, T2], T2],
|
Ap[T.Tuple2[T1, T2], T2],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple2 converts a [Tuple2] of [A] via transformation functions transforming [A] to [A] into a [Tuple2].
|
// TraverseTuple2 converts a [Tuple2] of [A] via transformation functions transforming [A] to [A] into a [Tuple2].
|
||||||
func TraverseTuple2[F1 ~func(A1) T1, F2 ~func(A2) T2, A1, T1, A2, T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) T.Tuple2[T1, T2] {
|
func TraverseTuple2[F1 ~func(A1) T1, F2 ~func(A2) T2, A1, T1, A2, T2 any](f1 F1, f2 F2) func (T.Tuple2[A1, A2]) T.Tuple2[T1, T2] {
|
||||||
return func(t T.Tuple2[A1, A2]) T.Tuple2[T1, T2] {
|
return func(t T.Tuple2[A1, A2]) T.Tuple2[T1, T2] {
|
||||||
return A.TraverseTuple2(
|
return A.TraverseTuple2(
|
||||||
Map[T1, func(T2) T.Tuple2[T1, T2]],
|
Map[T1, func(T2) T.Tuple2[T1, T2]],
|
||||||
Ap[T.Tuple2[T1, T2], T2],
|
Ap[T.Tuple2[T1, T2], T2],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT3 converts 3 parameters of [T] into a [Tuple3].
|
// SequenceT3 converts 3 parameters of [T] into a [Tuple3].
|
||||||
func SequenceT3[T1, T2, T3 any](t1 T1, t2 T2, t3 T3) T.Tuple3[T1, T2, T3] {
|
func SequenceT3[T1, T2, T3 any](t1 T1, t2 T2, t3 T3) T.Tuple3[T1, T2, T3] {
|
||||||
return A.SequenceT3(
|
return A.SequenceT3(
|
||||||
Map[T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
Map[T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
||||||
Ap[func(T3) T.Tuple3[T1, T2, T3], T2],
|
Ap[func(T3) T.Tuple3[T1, T2, T3], T2],
|
||||||
Ap[T.Tuple3[T1, T2, T3], T3],
|
Ap[T.Tuple3[T1, T2, T3], T3],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple3 converts a [Tuple3] of [T] into an [Tuple3].
|
// SequenceTuple3 converts a [Tuple3] of [T] into an [Tuple3].
|
||||||
func SequenceTuple3[T1, T2, T3 any](t T.Tuple3[T1, T2, T3]) T.Tuple3[T1, T2, T3] {
|
func SequenceTuple3[T1, T2, T3 any](t T.Tuple3[T1, T2, T3]) T.Tuple3[T1, T2, T3] {
|
||||||
return A.SequenceTuple3(
|
return A.SequenceTuple3(
|
||||||
Map[T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
Map[T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
||||||
Ap[func(T3) T.Tuple3[T1, T2, T3], T2],
|
Ap[func(T3) T.Tuple3[T1, T2, T3], T2],
|
||||||
Ap[T.Tuple3[T1, T2, T3], T3],
|
Ap[T.Tuple3[T1, T2, T3], T3],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple3 converts a [Tuple3] of [A] via transformation functions transforming [A] to [A] into a [Tuple3].
|
// TraverseTuple3 converts a [Tuple3] of [A] via transformation functions transforming [A] to [A] into a [Tuple3].
|
||||||
func TraverseTuple3[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, A1, T1, A2, T2, A3, T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) T.Tuple3[T1, T2, T3] {
|
func TraverseTuple3[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, A1, T1, A2, T2, A3, T3 any](f1 F1, f2 F2, f3 F3) func (T.Tuple3[A1, A2, A3]) T.Tuple3[T1, T2, T3] {
|
||||||
return func(t T.Tuple3[A1, A2, A3]) T.Tuple3[T1, T2, T3] {
|
return func(t T.Tuple3[A1, A2, A3]) T.Tuple3[T1, T2, T3] {
|
||||||
return A.TraverseTuple3(
|
return A.TraverseTuple3(
|
||||||
Map[T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
Map[T1, func(T2) func(T3) T.Tuple3[T1, T2, T3]],
|
||||||
Ap[func(T3) T.Tuple3[T1, T2, T3], T2],
|
Ap[func(T3) T.Tuple3[T1, T2, T3], T2],
|
||||||
Ap[T.Tuple3[T1, T2, T3], T3],
|
Ap[T.Tuple3[T1, T2, T3], T3],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT4 converts 4 parameters of [T] into a [Tuple4].
|
// SequenceT4 converts 4 parameters of [T] into a [Tuple4].
|
||||||
func SequenceT4[T1, T2, T3, T4 any](t1 T1, t2 T2, t3 T3, t4 T4) T.Tuple4[T1, T2, T3, T4] {
|
func SequenceT4[T1, T2, T3, T4 any](t1 T1, t2 T2, t3 T3, t4 T4) T.Tuple4[T1, T2, T3, T4] {
|
||||||
return A.SequenceT4(
|
return A.SequenceT4(
|
||||||
Map[T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
Map[T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
||||||
Ap[func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T2],
|
Ap[func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T2],
|
||||||
Ap[func(T4) T.Tuple4[T1, T2, T3, T4], T3],
|
Ap[func(T4) T.Tuple4[T1, T2, T3, T4], T3],
|
||||||
Ap[T.Tuple4[T1, T2, T3, T4], T4],
|
Ap[T.Tuple4[T1, T2, T3, T4], T4],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
t4,
|
t4,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple4 converts a [Tuple4] of [T] into an [Tuple4].
|
// SequenceTuple4 converts a [Tuple4] of [T] into an [Tuple4].
|
||||||
func SequenceTuple4[T1, T2, T3, T4 any](t T.Tuple4[T1, T2, T3, T4]) T.Tuple4[T1, T2, T3, T4] {
|
func SequenceTuple4[T1, T2, T3, T4 any](t T.Tuple4[T1, T2, T3, T4]) T.Tuple4[T1, T2, T3, T4] {
|
||||||
return A.SequenceTuple4(
|
return A.SequenceTuple4(
|
||||||
Map[T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
Map[T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
||||||
Ap[func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T2],
|
Ap[func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T2],
|
||||||
Ap[func(T4) T.Tuple4[T1, T2, T3, T4], T3],
|
Ap[func(T4) T.Tuple4[T1, T2, T3, T4], T3],
|
||||||
Ap[T.Tuple4[T1, T2, T3, T4], T4],
|
Ap[T.Tuple4[T1, T2, T3, T4], T4],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple4 converts a [Tuple4] of [A] via transformation functions transforming [A] to [A] into a [Tuple4].
|
// TraverseTuple4 converts a [Tuple4] of [A] via transformation functions transforming [A] to [A] into a [Tuple4].
|
||||||
func TraverseTuple4[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, A1, T1, A2, T2, A3, T3, A4, T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) T.Tuple4[T1, T2, T3, T4] {
|
func TraverseTuple4[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, A1, T1, A2, T2, A3, T3, A4, T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func (T.Tuple4[A1, A2, A3, A4]) T.Tuple4[T1, T2, T3, T4] {
|
||||||
return func(t T.Tuple4[A1, A2, A3, A4]) T.Tuple4[T1, T2, T3, T4] {
|
return func(t T.Tuple4[A1, A2, A3, A4]) T.Tuple4[T1, T2, T3, T4] {
|
||||||
return A.TraverseTuple4(
|
return A.TraverseTuple4(
|
||||||
Map[T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
Map[T1, func(T2) func(T3) func(T4) T.Tuple4[T1, T2, T3, T4]],
|
||||||
Ap[func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T2],
|
Ap[func(T3) func(T4) T.Tuple4[T1, T2, T3, T4], T2],
|
||||||
Ap[func(T4) T.Tuple4[T1, T2, T3, T4], T3],
|
Ap[func(T4) T.Tuple4[T1, T2, T3, T4], T3],
|
||||||
Ap[T.Tuple4[T1, T2, T3, T4], T4],
|
Ap[T.Tuple4[T1, T2, T3, T4], T4],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
f4,
|
f4,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT5 converts 5 parameters of [T] into a [Tuple5].
|
// SequenceT5 converts 5 parameters of [T] into a [Tuple5].
|
||||||
func SequenceT5[T1, T2, T3, T4, T5 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) T.Tuple5[T1, T2, T3, T4, T5] {
|
func SequenceT5[T1, T2, T3, T4, T5 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) T.Tuple5[T1, T2, T3, T4, T5] {
|
||||||
return A.SequenceT5(
|
return A.SequenceT5(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
||||||
Ap[func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T2],
|
Ap[func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T2],
|
||||||
Ap[func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T3],
|
Ap[func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T3],
|
||||||
Ap[func(T5) T.Tuple5[T1, T2, T3, T4, T5], T4],
|
Ap[func(T5) T.Tuple5[T1, T2, T3, T4, T5], T4],
|
||||||
Ap[T.Tuple5[T1, T2, T3, T4, T5], T5],
|
Ap[T.Tuple5[T1, T2, T3, T4, T5], T5],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
t4,
|
t4,
|
||||||
t5,
|
t5,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple5 converts a [Tuple5] of [T] into an [Tuple5].
|
// SequenceTuple5 converts a [Tuple5] of [T] into an [Tuple5].
|
||||||
func SequenceTuple5[T1, T2, T3, T4, T5 any](t T.Tuple5[T1, T2, T3, T4, T5]) T.Tuple5[T1, T2, T3, T4, T5] {
|
func SequenceTuple5[T1, T2, T3, T4, T5 any](t T.Tuple5[T1, T2, T3, T4, T5]) T.Tuple5[T1, T2, T3, T4, T5] {
|
||||||
return A.SequenceTuple5(
|
return A.SequenceTuple5(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
||||||
Ap[func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T2],
|
Ap[func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T2],
|
||||||
Ap[func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T3],
|
Ap[func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T3],
|
||||||
Ap[func(T5) T.Tuple5[T1, T2, T3, T4, T5], T4],
|
Ap[func(T5) T.Tuple5[T1, T2, T3, T4, T5], T4],
|
||||||
Ap[T.Tuple5[T1, T2, T3, T4, T5], T5],
|
Ap[T.Tuple5[T1, T2, T3, T4, T5], T5],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple5 converts a [Tuple5] of [A] via transformation functions transforming [A] to [A] into a [Tuple5].
|
// TraverseTuple5 converts a [Tuple5] of [A] via transformation functions transforming [A] to [A] into a [Tuple5].
|
||||||
func TraverseTuple5[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) T.Tuple5[T1, T2, T3, T4, T5] {
|
func TraverseTuple5[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func (T.Tuple5[A1, A2, A3, A4, A5]) T.Tuple5[T1, T2, T3, T4, T5] {
|
||||||
return func(t T.Tuple5[A1, A2, A3, A4, A5]) T.Tuple5[T1, T2, T3, T4, T5] {
|
return func(t T.Tuple5[A1, A2, A3, A4, A5]) T.Tuple5[T1, T2, T3, T4, T5] {
|
||||||
return A.TraverseTuple5(
|
return A.TraverseTuple5(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5]],
|
||||||
Ap[func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T2],
|
Ap[func(T3) func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T2],
|
||||||
Ap[func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T3],
|
Ap[func(T4) func(T5) T.Tuple5[T1, T2, T3, T4, T5], T3],
|
||||||
Ap[func(T5) T.Tuple5[T1, T2, T3, T4, T5], T4],
|
Ap[func(T5) T.Tuple5[T1, T2, T3, T4, T5], T4],
|
||||||
Ap[T.Tuple5[T1, T2, T3, T4, T5], T5],
|
Ap[T.Tuple5[T1, T2, T3, T4, T5], T5],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
f4,
|
f4,
|
||||||
f5,
|
f5,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT6 converts 6 parameters of [T] into a [Tuple6].
|
// SequenceT6 converts 6 parameters of [T] into a [Tuple6].
|
||||||
func SequenceT6[T1, T2, T3, T4, T5, T6 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
func SequenceT6[T1, T2, T3, T4, T5, T6 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
||||||
return A.SequenceT6(
|
return A.SequenceT6(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
Ap[func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
||||||
Ap[func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
Ap[func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
||||||
Ap[func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
Ap[func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
||||||
Ap[T.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
Ap[T.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
t4,
|
t4,
|
||||||
t5,
|
t5,
|
||||||
t6,
|
t6,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple6 converts a [Tuple6] of [T] into an [Tuple6].
|
// SequenceTuple6 converts a [Tuple6] of [T] into an [Tuple6].
|
||||||
func SequenceTuple6[T1, T2, T3, T4, T5, T6 any](t T.Tuple6[T1, T2, T3, T4, T5, T6]) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
func SequenceTuple6[T1, T2, T3, T4, T5, T6 any](t T.Tuple6[T1, T2, T3, T4, T5, T6]) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
||||||
return A.SequenceTuple6(
|
return A.SequenceTuple6(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
Ap[func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
||||||
Ap[func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
Ap[func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
||||||
Ap[func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
Ap[func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
||||||
Ap[T.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
Ap[T.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple6 converts a [Tuple6] of [A] via transformation functions transforming [A] to [A] into a [Tuple6].
|
// TraverseTuple6 converts a [Tuple6] of [A] via transformation functions transforming [A] to [A] into a [Tuple6].
|
||||||
func TraverseTuple6[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
func TraverseTuple6[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func (T.Tuple6[A1, A2, A3, A4, A5, A6]) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
||||||
return func(t T.Tuple6[A1, A2, A3, A4, A5, A6]) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
return func(t T.Tuple6[A1, A2, A3, A4, A5, A6]) T.Tuple6[T1, T2, T3, T4, T5, T6] {
|
||||||
return A.TraverseTuple6(
|
return A.TraverseTuple6(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
Ap[func(T4) func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T3],
|
||||||
Ap[func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
Ap[func(T5) func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T4],
|
||||||
Ap[func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
Ap[func(T6) T.Tuple6[T1, T2, T3, T4, T5, T6], T5],
|
||||||
Ap[T.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
Ap[T.Tuple6[T1, T2, T3, T4, T5, T6], T6],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
f4,
|
f4,
|
||||||
f5,
|
f5,
|
||||||
f6,
|
f6,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT7 converts 7 parameters of [T] into a [Tuple7].
|
// SequenceT7 converts 7 parameters of [T] into a [Tuple7].
|
||||||
func SequenceT7[T1, T2, T3, T4, T5, T6, T7 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
func SequenceT7[T1, T2, T3, T4, T5, T6, T7 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
||||||
return A.SequenceT7(
|
return A.SequenceT7(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
Ap[func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
||||||
Ap[func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
Ap[func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
||||||
Ap[func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
Ap[func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
||||||
Ap[T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
Ap[T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
t4,
|
t4,
|
||||||
t5,
|
t5,
|
||||||
t6,
|
t6,
|
||||||
t7,
|
t7,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple7 converts a [Tuple7] of [T] into an [Tuple7].
|
// SequenceTuple7 converts a [Tuple7] of [T] into an [Tuple7].
|
||||||
func SequenceTuple7[T1, T2, T3, T4, T5, T6, T7 any](t T.Tuple7[T1, T2, T3, T4, T5, T6, T7]) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
func SequenceTuple7[T1, T2, T3, T4, T5, T6, T7 any](t T.Tuple7[T1, T2, T3, T4, T5, T6, T7]) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
||||||
return A.SequenceTuple7(
|
return A.SequenceTuple7(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
Ap[func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
||||||
Ap[func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
Ap[func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
||||||
Ap[func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
Ap[func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
||||||
Ap[T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
Ap[T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple7 converts a [Tuple7] of [A] via transformation functions transforming [A] to [A] into a [Tuple7].
|
// TraverseTuple7 converts a [Tuple7] of [A] via transformation functions transforming [A] to [A] into a [Tuple7].
|
||||||
func TraverseTuple7[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7) func(T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
func TraverseTuple7[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7) func (T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
||||||
return func(t T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
return func(t T.Tuple7[A1, A2, A3, A4, A5, A6, A7]) T.Tuple7[T1, T2, T3, T4, T5, T6, T7] {
|
||||||
return A.TraverseTuple7(
|
return A.TraverseTuple7(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
Ap[func(T5) func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T4],
|
||||||
Ap[func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
Ap[func(T6) func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T5],
|
||||||
Ap[func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
Ap[func(T7) T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T6],
|
||||||
Ap[T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
Ap[T.Tuple7[T1, T2, T3, T4, T5, T6, T7], T7],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
f4,
|
f4,
|
||||||
f5,
|
f5,
|
||||||
f6,
|
f6,
|
||||||
f7,
|
f7,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT8 converts 8 parameters of [T] into a [Tuple8].
|
// SequenceT8 converts 8 parameters of [T] into a [Tuple8].
|
||||||
func SequenceT8[T1, T2, T3, T4, T5, T6, T7, T8 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
func SequenceT8[T1, T2, T3, T4, T5, T6, T7, T8 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
||||||
return A.SequenceT8(
|
return A.SequenceT8(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
Ap[func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
||||||
Ap[func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
Ap[func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
||||||
Ap[func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
Ap[func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
||||||
Ap[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
Ap[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
t4,
|
t4,
|
||||||
t5,
|
t5,
|
||||||
t6,
|
t6,
|
||||||
t7,
|
t7,
|
||||||
t8,
|
t8,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple8 converts a [Tuple8] of [T] into an [Tuple8].
|
// SequenceTuple8 converts a [Tuple8] of [T] into an [Tuple8].
|
||||||
func SequenceTuple8[T1, T2, T3, T4, T5, T6, T7, T8 any](t T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
func SequenceTuple8[T1, T2, T3, T4, T5, T6, T7, T8 any](t T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
||||||
return A.SequenceTuple8(
|
return A.SequenceTuple8(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
Ap[func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
||||||
Ap[func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
Ap[func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
||||||
Ap[func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
Ap[func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
||||||
Ap[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
Ap[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple8 converts a [Tuple8] of [A] via transformation functions transforming [A] to [A] into a [Tuple8].
|
// TraverseTuple8 converts a [Tuple8] of [A] via transformation functions transforming [A] to [A] into a [Tuple8].
|
||||||
func TraverseTuple8[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, F8 ~func(A8) T8, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7, A8, T8 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8) func(T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
func TraverseTuple8[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, F8 ~func(A8) T8, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7, A8, T8 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8) func (T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
||||||
return func(t T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
return func(t T.Tuple8[A1, A2, A3, A4, A5, A6, A7, A8]) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8] {
|
||||||
return A.TraverseTuple8(
|
return A.TraverseTuple8(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
Ap[func(T6) func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T5],
|
||||||
Ap[func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
Ap[func(T7) func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T6],
|
||||||
Ap[func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
Ap[func(T8) T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T7],
|
||||||
Ap[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
Ap[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8], T8],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
f4,
|
f4,
|
||||||
f5,
|
f5,
|
||||||
f6,
|
f6,
|
||||||
f7,
|
f7,
|
||||||
f8,
|
f8,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT9 converts 9 parameters of [T] into a [Tuple9].
|
// SequenceT9 converts 9 parameters of [T] into a [Tuple9].
|
||||||
func SequenceT9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
func SequenceT9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
||||||
return A.SequenceT9(
|
return A.SequenceT9(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
Ap[func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
||||||
Ap[func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
Ap[func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
||||||
Ap[func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
Ap[func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
||||||
Ap[func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
Ap[func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
||||||
Ap[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
Ap[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
t4,
|
t4,
|
||||||
t5,
|
t5,
|
||||||
t6,
|
t6,
|
||||||
t7,
|
t7,
|
||||||
t8,
|
t8,
|
||||||
t9,
|
t9,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple9 converts a [Tuple9] of [T] into an [Tuple9].
|
// SequenceTuple9 converts a [Tuple9] of [T] into an [Tuple9].
|
||||||
func SequenceTuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
func SequenceTuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
||||||
return A.SequenceTuple9(
|
return A.SequenceTuple9(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
Ap[func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
||||||
Ap[func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
Ap[func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
||||||
Ap[func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
Ap[func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
||||||
Ap[func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
Ap[func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
||||||
Ap[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
Ap[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple9 converts a [Tuple9] of [A] via transformation functions transforming [A] to [A] into a [Tuple9].
|
// TraverseTuple9 converts a [Tuple9] of [A] via transformation functions transforming [A] to [A] into a [Tuple9].
|
||||||
func TraverseTuple9[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, F8 ~func(A8) T8, F9 ~func(A9) T9, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7, A8, T8, A9, T9 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9) func(T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
func TraverseTuple9[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, F8 ~func(A8) T8, F9 ~func(A9) T9, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7, A8, T8, A9, T9 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9) func (T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
||||||
return func(t T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
return func(t T.Tuple9[A1, A2, A3, A4, A5, A6, A7, A8, A9]) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9] {
|
||||||
return A.TraverseTuple9(
|
return A.TraverseTuple9(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
Ap[func(T6) func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T5],
|
||||||
Ap[func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
Ap[func(T7) func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T6],
|
||||||
Ap[func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
Ap[func(T8) func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T7],
|
||||||
Ap[func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
Ap[func(T9) T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T8],
|
||||||
Ap[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
Ap[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9], T9],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
f4,
|
f4,
|
||||||
f5,
|
f5,
|
||||||
f6,
|
f6,
|
||||||
f7,
|
f7,
|
||||||
f8,
|
f8,
|
||||||
f9,
|
f9,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceT10 converts 10 parameters of [T] into a [Tuple10].
|
// SequenceT10 converts 10 parameters of [T] into a [Tuple10].
|
||||||
func SequenceT10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9, t10 T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
func SequenceT10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9, t10 T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
||||||
return A.SequenceT10(
|
return A.SequenceT10(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
||||||
Ap[func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
Ap[func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
||||||
Ap[func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
Ap[func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
||||||
Ap[func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
Ap[func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
||||||
Ap[func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
Ap[func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
||||||
Ap[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
Ap[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
||||||
t1,
|
t1,
|
||||||
t2,
|
t2,
|
||||||
t3,
|
t3,
|
||||||
t4,
|
t4,
|
||||||
t5,
|
t5,
|
||||||
t6,
|
t6,
|
||||||
t7,
|
t7,
|
||||||
t8,
|
t8,
|
||||||
t9,
|
t9,
|
||||||
t10,
|
t10,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// SequenceTuple10 converts a [Tuple10] of [T] into an [Tuple10].
|
// SequenceTuple10 converts a [Tuple10] of [T] into an [Tuple10].
|
||||||
func SequenceTuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
func SequenceTuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
||||||
return A.SequenceTuple10(
|
return A.SequenceTuple10(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
||||||
Ap[func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
Ap[func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
||||||
Ap[func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
Ap[func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
||||||
Ap[func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
Ap[func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
||||||
Ap[func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
Ap[func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
||||||
Ap[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
Ap[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TraverseTuple10 converts a [Tuple10] of [A] via transformation functions transforming [A] to [A] into a [Tuple10].
|
// TraverseTuple10 converts a [Tuple10] of [A] via transformation functions transforming [A] to [A] into a [Tuple10].
|
||||||
func TraverseTuple10[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, F8 ~func(A8) T8, F9 ~func(A9) T9, F10 ~func(A10) T10, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7, A8, T8, A9, T9, A10, T10 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9, f10 F10) func(T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
func TraverseTuple10[F1 ~func(A1) T1, F2 ~func(A2) T2, F3 ~func(A3) T3, F4 ~func(A4) T4, F5 ~func(A5) T5, F6 ~func(A6) T6, F7 ~func(A7) T7, F8 ~func(A8) T8, F9 ~func(A9) T9, F10 ~func(A10) T10, A1, T1, A2, T2, A3, T3, A4, T4, A5, T5, A6, T6, A7, T7, A8, T8, A9, T9, A10, T10 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6, f7 F7, f8 F8, f9 F9, f10 F10) func (T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
||||||
return func(t T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
return func(t T.Tuple10[A1, A2, A3, A4, A5, A6, A7, A8, A9, A10]) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10] {
|
||||||
return A.TraverseTuple10(
|
return A.TraverseTuple10(
|
||||||
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
Map[T1, func(T2) func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]],
|
||||||
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
Ap[func(T3) func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T2],
|
||||||
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
Ap[func(T4) func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T3],
|
||||||
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
Ap[func(T5) func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T4],
|
||||||
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
Ap[func(T6) func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T5],
|
||||||
Ap[func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
Ap[func(T7) func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T6],
|
||||||
Ap[func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
Ap[func(T8) func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T7],
|
||||||
Ap[func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
Ap[func(T9) func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T8],
|
||||||
Ap[func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
Ap[func(T10) T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T9],
|
||||||
Ap[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
Ap[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10], T10],
|
||||||
f1,
|
f1,
|
||||||
f2,
|
f2,
|
||||||
f3,
|
f3,
|
||||||
f4,
|
f4,
|
||||||
f5,
|
f5,
|
||||||
f6,
|
f6,
|
||||||
f7,
|
f7,
|
||||||
f8,
|
f8,
|
||||||
f9,
|
f9,
|
||||||
f10,
|
f10,
|
||||||
t,
|
t,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
17
main.go
17
main.go
@ -1,4 +1,19 @@
|
|||||||
// Package main
|
// Copyright (c) 2023 IBM Corp.
|
||||||
|
// All rights reserved.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
// you may not use this file except in compliance with the License.
|
||||||
|
// You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// 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 main contains the entry point for the code generator
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
950
option/gen.go
950
option/gen.go
File diff suppressed because it is too large
Load Diff
@ -1,74 +1,75 @@
|
|||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:52.5144916 +0200 CEST m=+0.241563101
|
// 2023-07-20 16:14:46.7504208 +0200 CEST m=+0.095418801
|
||||||
package reader
|
package reader
|
||||||
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
G "github.com/IBM/fp-go/reader/generic"
|
G "github.com/IBM/fp-go/reader/generic"
|
||||||
)
|
)
|
||||||
|
|
||||||
// From0 converts a function with 1 parameters returning a [R] into a function with 0 parameters returning a [Reader[C, R]]
|
// From0 converts a function with 1 parameters returning a [R] into a function with 0 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From0[F ~func(C) R, C, R any](f F) func() Reader[C, R] {
|
func From0[F ~func(C) R, C, R any](f F) func() Reader[C, R] {
|
||||||
return G.From0[Reader[C, R]](f)
|
return G.From0[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From1 converts a function with 2 parameters returning a [R] into a function with 1 parameters returning a [Reader[C, R]]
|
// From1 converts a function with 2 parameters returning a [R] into a function with 1 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From1[F ~func(C, T0) R, T0, C, R any](f F) func(T0) Reader[C, R] {
|
func From1[F ~func(C, T0) R, T0, C, R any](f F) func(T0) Reader[C, R] {
|
||||||
return G.From1[Reader[C, R]](f)
|
return G.From1[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From2 converts a function with 3 parameters returning a [R] into a function with 2 parameters returning a [Reader[C, R]]
|
// From2 converts a function with 3 parameters returning a [R] into a function with 2 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From2[F ~func(C, T0, T1) R, T0, T1, C, R any](f F) func(T0, T1) Reader[C, R] {
|
func From2[F ~func(C, T0, T1) R, T0, T1, C, R any](f F) func(T0, T1) Reader[C, R] {
|
||||||
return G.From2[Reader[C, R]](f)
|
return G.From2[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From3 converts a function with 4 parameters returning a [R] into a function with 3 parameters returning a [Reader[C, R]]
|
// From3 converts a function with 4 parameters returning a [R] into a function with 3 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From3[F ~func(C, T0, T1, T2) R, T0, T1, T2, C, R any](f F) func(T0, T1, T2) Reader[C, R] {
|
func From3[F ~func(C, T0, T1, T2) R, T0, T1, T2, C, R any](f F) func(T0, T1, T2) Reader[C, R] {
|
||||||
return G.From3[Reader[C, R]](f)
|
return G.From3[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From4 converts a function with 5 parameters returning a [R] into a function with 4 parameters returning a [Reader[C, R]]
|
// From4 converts a function with 5 parameters returning a [R] into a function with 4 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From4[F ~func(C, T0, T1, T2, T3) R, T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) Reader[C, R] {
|
func From4[F ~func(C, T0, T1, T2, T3) R, T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) Reader[C, R] {
|
||||||
return G.From4[Reader[C, R]](f)
|
return G.From4[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From5 converts a function with 6 parameters returning a [R] into a function with 5 parameters returning a [Reader[C, R]]
|
// From5 converts a function with 6 parameters returning a [R] into a function with 5 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From5[F ~func(C, T0, T1, T2, T3, T4) R, T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) Reader[C, R] {
|
func From5[F ~func(C, T0, T1, T2, T3, T4) R, T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) Reader[C, R] {
|
||||||
return G.From5[Reader[C, R]](f)
|
return G.From5[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From6 converts a function with 7 parameters returning a [R] into a function with 6 parameters returning a [Reader[C, R]]
|
// From6 converts a function with 7 parameters returning a [R] into a function with 6 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From6[F ~func(C, T0, T1, T2, T3, T4, T5) R, T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) Reader[C, R] {
|
func From6[F ~func(C, T0, T1, T2, T3, T4, T5) R, T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) Reader[C, R] {
|
||||||
return G.From6[Reader[C, R]](f)
|
return G.From6[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From7 converts a function with 8 parameters returning a [R] into a function with 7 parameters returning a [Reader[C, R]]
|
// From7 converts a function with 8 parameters returning a [R] into a function with 7 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From7[F ~func(C, T0, T1, T2, T3, T4, T5, T6) R, T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) Reader[C, R] {
|
func From7[F ~func(C, T0, T1, T2, T3, T4, T5, T6) R, T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) Reader[C, R] {
|
||||||
return G.From7[Reader[C, R]](f)
|
return G.From7[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From8 converts a function with 9 parameters returning a [R] into a function with 8 parameters returning a [Reader[C, R]]
|
// From8 converts a function with 9 parameters returning a [R] into a function with 8 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From8[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) R, T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) Reader[C, R] {
|
func From8[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) R, T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) Reader[C, R] {
|
||||||
return G.From8[Reader[C, R]](f)
|
return G.From8[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From9 converts a function with 10 parameters returning a [R] into a function with 9 parameters returning a [Reader[C, R]]
|
// From9 converts a function with 10 parameters returning a [R] into a function with 9 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From9[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) Reader[C, R] {
|
func From9[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) Reader[C, R] {
|
||||||
return G.From9[Reader[C, R]](f)
|
return G.From9[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From10 converts a function with 11 parameters returning a [R] into a function with 10 parameters returning a [Reader[C, R]]
|
// From10 converts a function with 11 parameters returning a [R] into a function with 10 parameters returning a [Reader[C, R]]
|
||||||
// The first parameter is considered to be the context [C] of the reader
|
// The first parameter is considered to be the context [C] of the reader
|
||||||
func From10[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Reader[C, R] {
|
func From10[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) Reader[C, R] {
|
||||||
return G.From10[Reader[C, R]](f)
|
return G.From10[Reader[C, R]](f)
|
||||||
}
|
}
|
||||||
|
@ -1,114 +1,115 @@
|
|||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:52.5450262 +0200 CEST m=+0.272097701
|
// 2023-07-20 16:14:46.7514193 +0200 CEST m=+0.096417301
|
||||||
package generic
|
package generic
|
||||||
|
|
||||||
|
|
||||||
// From0 converts a function with 1 parameters returning a [R] into a function with 0 parameters returning a [GRA]
|
// From0 converts a function with 1 parameters returning a [R] into a function with 0 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From0[GRA ~func(C) R, F ~func(C) R, C, R any](f F) func() GRA {
|
func From0[GRA ~func(C) R, F ~func(C) R, C, R any](f F) func() GRA {
|
||||||
return func() GRA {
|
return func() GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r)
|
return f(r)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From1 converts a function with 2 parameters returning a [R] into a function with 1 parameters returning a [GRA]
|
// From1 converts a function with 2 parameters returning a [R] into a function with 1 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From1[GRA ~func(C) R, F ~func(C, T0) R, T0, C, R any](f F) func(T0) GRA {
|
func From1[GRA ~func(C) R, F ~func(C, T0) R, T0, C, R any](f F) func(T0) GRA {
|
||||||
return func(t0 T0) GRA {
|
return func(t0 T0) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0)
|
return f(r, t0)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From2 converts a function with 3 parameters returning a [R] into a function with 2 parameters returning a [GRA]
|
// From2 converts a function with 3 parameters returning a [R] into a function with 2 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From2[GRA ~func(C) R, F ~func(C, T0, T1) R, T0, T1, C, R any](f F) func(T0, T1) GRA {
|
func From2[GRA ~func(C) R, F ~func(C, T0, T1) R, T0, T1, C, R any](f F) func(T0, T1) GRA {
|
||||||
return func(t0 T0, t1 T1) GRA {
|
return func(t0 T0, t1 T1) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1)
|
return f(r, t0, t1)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From3 converts a function with 4 parameters returning a [R] into a function with 3 parameters returning a [GRA]
|
// From3 converts a function with 4 parameters returning a [R] into a function with 3 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From3[GRA ~func(C) R, F ~func(C, T0, T1, T2) R, T0, T1, T2, C, R any](f F) func(T0, T1, T2) GRA {
|
func From3[GRA ~func(C) R, F ~func(C, T0, T1, T2) R, T0, T1, T2, C, R any](f F) func(T0, T1, T2) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2) GRA {
|
return func(t0 T0, t1 T1, t2 T2) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2)
|
return f(r, t0, t1, t2)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From4 converts a function with 5 parameters returning a [R] into a function with 4 parameters returning a [GRA]
|
// From4 converts a function with 5 parameters returning a [R] into a function with 4 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From4[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3) R, T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) GRA {
|
func From4[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3) R, T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2, t3 T3) GRA {
|
return func(t0 T0, t1 T1, t2 T2, t3 T3) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2, t3)
|
return f(r, t0, t1, t2, t3)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From5 converts a function with 6 parameters returning a [R] into a function with 5 parameters returning a [GRA]
|
// From5 converts a function with 6 parameters returning a [R] into a function with 5 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From5[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4) R, T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
func From5[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4) R, T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4) GRA {
|
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2, t3, t4)
|
return f(r, t0, t1, t2, t3, t4)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From6 converts a function with 7 parameters returning a [R] into a function with 6 parameters returning a [GRA]
|
// From6 converts a function with 7 parameters returning a [R] into a function with 6 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From6[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5) R, T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
func From6[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5) R, T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) GRA {
|
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5)
|
return f(r, t0, t1, t2, t3, t4, t5)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From7 converts a function with 8 parameters returning a [R] into a function with 7 parameters returning a [GRA]
|
// From7 converts a function with 8 parameters returning a [R] into a function with 7 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From7[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6) R, T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
func From7[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6) R, T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) GRA {
|
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6)
|
return f(r, t0, t1, t2, t3, t4, t5, t6)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From8 converts a function with 9 parameters returning a [R] into a function with 8 parameters returning a [GRA]
|
// From8 converts a function with 9 parameters returning a [R] into a function with 8 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From8[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) R, T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
func From8[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) R, T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) GRA {
|
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6, t7)
|
return f(r, t0, t1, t2, t3, t4, t5, t6, t7)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From9 converts a function with 10 parameters returning a [R] into a function with 9 parameters returning a [GRA]
|
// From9 converts a function with 10 parameters returning a [R] into a function with 9 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From9[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
func From9[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) GRA {
|
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8)
|
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// From10 converts a function with 11 parameters returning a [R] into a function with 10 parameters returning a [GRA]
|
// From10 converts a function with 11 parameters returning a [R] into a function with 10 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From10[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
func From10[GRA ~func(C) R, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) R, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
||||||
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) GRA {
|
return func(t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) GRA {
|
||||||
return MakeReader[GRA](func(r C) R {
|
return MakeReader[GRA](func(r C) R {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9)
|
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,140 +1,141 @@
|
|||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:55.4405883 +0200 CEST m=+0.019120301
|
// 2023-07-20 16:14:48.8807201 +0200 CEST m=+0.044278401
|
||||||
package readerioeither
|
package readerioeither
|
||||||
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
G "github.com/IBM/fp-go/readerioeither/generic"
|
G "github.com/IBM/fp-go/readerioeither/generic"
|
||||||
)
|
)
|
||||||
|
|
||||||
// From0 converts a function with 1 parameters returning a tuple into a function with 0 parameters returning a [ReaderIOEither[R]]
|
// From0 converts a function with 1 parameters returning a tuple into a function with 0 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From0[F ~func(C) func() (R, error), C, R any](f F) func() ReaderIOEither[C, error, R] {
|
func From0[F ~func(C) func() (R, error), C, R any](f F) func() ReaderIOEither[C, error, R] {
|
||||||
return G.From0[ReaderIOEither[C, error, R]](f)
|
return G.From0[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize0 converts a function with 1 parameters returning a tuple into a function with 0 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize0 converts a function with 1 parameters returning a tuple into a function with 0 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize0[F ~func(C) (R, error), C, R any](f F) func() ReaderIOEither[C, error, R] {
|
func Eitherize0[F ~func(C) (R, error), C, R any](f F) func() ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize0[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize0[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From1 converts a function with 2 parameters returning a tuple into a function with 1 parameters returning a [ReaderIOEither[R]]
|
// From1 converts a function with 2 parameters returning a tuple into a function with 1 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From1[F ~func(C, T0) func() (R, error), T0, C, R any](f F) func(T0) ReaderIOEither[C, error, R] {
|
func From1[F ~func(C, T0) func() (R, error), T0, C, R any](f F) func(T0) ReaderIOEither[C, error, R] {
|
||||||
return G.From1[ReaderIOEither[C, error, R]](f)
|
return G.From1[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize1 converts a function with 2 parameters returning a tuple into a function with 1 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize1 converts a function with 2 parameters returning a tuple into a function with 1 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize1[F ~func(C, T0) (R, error), T0, C, R any](f F) func(T0) ReaderIOEither[C, error, R] {
|
func Eitherize1[F ~func(C, T0) (R, error), T0, C, R any](f F) func(T0) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize1[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize1[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From2 converts a function with 3 parameters returning a tuple into a function with 2 parameters returning a [ReaderIOEither[R]]
|
// From2 converts a function with 3 parameters returning a tuple into a function with 2 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From2[F ~func(C, T0, T1) func() (R, error), T0, T1, C, R any](f F) func(T0, T1) ReaderIOEither[C, error, R] {
|
func From2[F ~func(C, T0, T1) func() (R, error), T0, T1, C, R any](f F) func(T0, T1) ReaderIOEither[C, error, R] {
|
||||||
return G.From2[ReaderIOEither[C, error, R]](f)
|
return G.From2[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize2 converts a function with 3 parameters returning a tuple into a function with 2 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize2 converts a function with 3 parameters returning a tuple into a function with 2 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize2[F ~func(C, T0, T1) (R, error), T0, T1, C, R any](f F) func(T0, T1) ReaderIOEither[C, error, R] {
|
func Eitherize2[F ~func(C, T0, T1) (R, error), T0, T1, C, R any](f F) func(T0, T1) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize2[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize2[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From3 converts a function with 4 parameters returning a tuple into a function with 3 parameters returning a [ReaderIOEither[R]]
|
// From3 converts a function with 4 parameters returning a tuple into a function with 3 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From3[F ~func(C, T0, T1, T2) func() (R, error), T0, T1, T2, C, R any](f F) func(T0, T1, T2) ReaderIOEither[C, error, R] {
|
func From3[F ~func(C, T0, T1, T2) func() (R, error), T0, T1, T2, C, R any](f F) func(T0, T1, T2) ReaderIOEither[C, error, R] {
|
||||||
return G.From3[ReaderIOEither[C, error, R]](f)
|
return G.From3[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize3 converts a function with 4 parameters returning a tuple into a function with 3 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize3 converts a function with 4 parameters returning a tuple into a function with 3 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize3[F ~func(C, T0, T1, T2) (R, error), T0, T1, T2, C, R any](f F) func(T0, T1, T2) ReaderIOEither[C, error, R] {
|
func Eitherize3[F ~func(C, T0, T1, T2) (R, error), T0, T1, T2, C, R any](f F) func(T0, T1, T2) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize3[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize3[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From4 converts a function with 5 parameters returning a tuple into a function with 4 parameters returning a [ReaderIOEither[R]]
|
// From4 converts a function with 5 parameters returning a tuple into a function with 4 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From4[F ~func(C, T0, T1, T2, T3) func() (R, error), T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) ReaderIOEither[C, error, R] {
|
func From4[F ~func(C, T0, T1, T2, T3) func() (R, error), T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) ReaderIOEither[C, error, R] {
|
||||||
return G.From4[ReaderIOEither[C, error, R]](f)
|
return G.From4[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize4 converts a function with 5 parameters returning a tuple into a function with 4 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize4 converts a function with 5 parameters returning a tuple into a function with 4 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize4[F ~func(C, T0, T1, T2, T3) (R, error), T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) ReaderIOEither[C, error, R] {
|
func Eitherize4[F ~func(C, T0, T1, T2, T3) (R, error), T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize4[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize4[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From5 converts a function with 6 parameters returning a tuple into a function with 5 parameters returning a [ReaderIOEither[R]]
|
// From5 converts a function with 6 parameters returning a tuple into a function with 5 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From5[F ~func(C, T0, T1, T2, T3, T4) func() (R, error), T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) ReaderIOEither[C, error, R] {
|
func From5[F ~func(C, T0, T1, T2, T3, T4) func() (R, error), T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) ReaderIOEither[C, error, R] {
|
||||||
return G.From5[ReaderIOEither[C, error, R]](f)
|
return G.From5[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize5 converts a function with 6 parameters returning a tuple into a function with 5 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize5 converts a function with 6 parameters returning a tuple into a function with 5 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize5[F ~func(C, T0, T1, T2, T3, T4) (R, error), T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) ReaderIOEither[C, error, R] {
|
func Eitherize5[F ~func(C, T0, T1, T2, T3, T4) (R, error), T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize5[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize5[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From6 converts a function with 7 parameters returning a tuple into a function with 6 parameters returning a [ReaderIOEither[R]]
|
// From6 converts a function with 7 parameters returning a tuple into a function with 6 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From6[F ~func(C, T0, T1, T2, T3, T4, T5) func() (R, error), T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) ReaderIOEither[C, error, R] {
|
func From6[F ~func(C, T0, T1, T2, T3, T4, T5) func() (R, error), T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) ReaderIOEither[C, error, R] {
|
||||||
return G.From6[ReaderIOEither[C, error, R]](f)
|
return G.From6[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize6 converts a function with 7 parameters returning a tuple into a function with 6 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize6 converts a function with 7 parameters returning a tuple into a function with 6 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize6[F ~func(C, T0, T1, T2, T3, T4, T5) (R, error), T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) ReaderIOEither[C, error, R] {
|
func Eitherize6[F ~func(C, T0, T1, T2, T3, T4, T5) (R, error), T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize6[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize6[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From7 converts a function with 8 parameters returning a tuple into a function with 7 parameters returning a [ReaderIOEither[R]]
|
// From7 converts a function with 8 parameters returning a tuple into a function with 7 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From7[F ~func(C, T0, T1, T2, T3, T4, T5, T6) func() (R, error), T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) ReaderIOEither[C, error, R] {
|
func From7[F ~func(C, T0, T1, T2, T3, T4, T5, T6) func() (R, error), T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) ReaderIOEither[C, error, R] {
|
||||||
return G.From7[ReaderIOEither[C, error, R]](f)
|
return G.From7[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize7 converts a function with 8 parameters returning a tuple into a function with 7 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize7 converts a function with 8 parameters returning a tuple into a function with 7 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize7[F ~func(C, T0, T1, T2, T3, T4, T5, T6) (R, error), T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) ReaderIOEither[C, error, R] {
|
func Eitherize7[F ~func(C, T0, T1, T2, T3, T4, T5, T6) (R, error), T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize7[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize7[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From8 converts a function with 9 parameters returning a tuple into a function with 8 parameters returning a [ReaderIOEither[R]]
|
// From8 converts a function with 9 parameters returning a tuple into a function with 8 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From8[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) func() (R, error), T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) ReaderIOEither[C, error, R] {
|
func From8[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) func() (R, error), T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) ReaderIOEither[C, error, R] {
|
||||||
return G.From8[ReaderIOEither[C, error, R]](f)
|
return G.From8[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize8 converts a function with 9 parameters returning a tuple into a function with 8 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize8 converts a function with 9 parameters returning a tuple into a function with 8 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize8[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) ReaderIOEither[C, error, R] {
|
func Eitherize8[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize8[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize8[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From9 converts a function with 10 parameters returning a tuple into a function with 9 parameters returning a [ReaderIOEither[R]]
|
// From9 converts a function with 10 parameters returning a tuple into a function with 9 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From9[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) func() (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) ReaderIOEither[C, error, R] {
|
func From9[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) func() (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) ReaderIOEither[C, error, R] {
|
||||||
return G.From9[ReaderIOEither[C, error, R]](f)
|
return G.From9[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize9 converts a function with 10 parameters returning a tuple into a function with 9 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize9 converts a function with 10 parameters returning a tuple into a function with 9 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize9[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) ReaderIOEither[C, error, R] {
|
func Eitherize9[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize9[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize9[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// From10 converts a function with 11 parameters returning a tuple into a function with 10 parameters returning a [ReaderIOEither[R]]
|
// From10 converts a function with 11 parameters returning a tuple into a function with 10 parameters returning a [ReaderIOEither[R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func From10[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) func() (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) ReaderIOEither[C, error, R] {
|
func From10[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) func() (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) ReaderIOEither[C, error, R] {
|
||||||
return G.From10[ReaderIOEither[C, error, R]](f)
|
return G.From10[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize10 converts a function with 11 parameters returning a tuple into a function with 10 parameters returning a [ReaderIOEither[C, error, R]]
|
// Eitherize10 converts a function with 11 parameters returning a tuple into a function with 10 parameters returning a [ReaderIOEither[C, error, R]]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize10[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) ReaderIOEither[C, error, R] {
|
func Eitherize10[F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) ReaderIOEither[C, error, R] {
|
||||||
return G.Eitherize10[ReaderIOEither[C, error, R]](f)
|
return G.Eitherize10[ReaderIOEither[C, error, R]](f)
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,9 @@
|
|||||||
// Code generated by go generate; DO NOT EDIT.
|
// Code generated by go generate; DO NOT EDIT.
|
||||||
// This file was generated by robots at
|
// This file was generated by robots at
|
||||||
// 2023-07-19 16:18:55.4415885 +0200 CEST m=+0.020120501
|
// 2023-07-20 16:14:48.8823313 +0200 CEST m=+0.045889601
|
||||||
package generic
|
package generic
|
||||||
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
E "github.com/IBM/fp-go/either"
|
E "github.com/IBM/fp-go/either"
|
||||||
RD "github.com/IBM/fp-go/reader/generic"
|
RD "github.com/IBM/fp-go/reader/generic"
|
||||||
@ -11,197 +12,186 @@ import (
|
|||||||
// From0 converts a function with 1 parameters returning a tuple into a function with 0 parameters returning a [GRA]
|
// From0 converts a function with 1 parameters returning a tuple into a function with 0 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From0[GRA ~func(C) GIOA, F ~func(C) func() (R, error), GIOA ~func() E.Either[error, R], C, R any](f F) func() GRA {
|
func From0[GRA ~func(C) GIOA, F ~func(C) func() (R, error), GIOA ~func() E.Either[error, R], C, R any](f F) func() GRA {
|
||||||
return RD.From0[GRA](func(r C) GIOA {
|
return RD.From0[GRA](func(r C) GIOA {
|
||||||
return E.Eitherize0(f(r))
|
return E.Eitherize0(f(r))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GRA]
|
// Eitherize0 converts a function with 0 parameters returning a tuple into a function with 0 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize0[GRA ~func(C) GIOA, F ~func(C) (R, error), GIOA ~func() E.Either[error, R], C, R any](f F) func() GRA {
|
func Eitherize0[GRA ~func(C) GIOA, F ~func(C) (R, error), GIOA ~func() E.Either[error, R], C, R any](f F) func() GRA {
|
||||||
return From0[GRA](func(r C) func() (R, error) {
|
return From0[GRA](func(r C) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r)
|
return f(r)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From1 converts a function with 2 parameters returning a tuple into a function with 1 parameters returning a [GRA]
|
// From1 converts a function with 2 parameters returning a tuple into a function with 1 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From1[GRA ~func(C) GIOA, F ~func(C, T0) func() (R, error), GIOA ~func() E.Either[error, R], T0, C, R any](f F) func(T0) GRA {
|
func From1[GRA ~func(C) GIOA, F ~func(C, T0) func() (R, error), GIOA ~func() E.Either[error, R], T0, C, R any](f F) func(T0) GRA {
|
||||||
return RD.From1[GRA](func(r C, t0 T0) GIOA {
|
return RD.From1[GRA](func(r C, t0 T0) GIOA {
|
||||||
return E.Eitherize0(f(r, t0))
|
return E.Eitherize0(f(r, t0))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [GRA]
|
// Eitherize1 converts a function with 1 parameters returning a tuple into a function with 1 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize1[GRA ~func(C) GIOA, F ~func(C, T0) (R, error), GIOA ~func() E.Either[error, R], T0, C, R any](f F) func(T0) GRA {
|
func Eitherize1[GRA ~func(C) GIOA, F ~func(C, T0) (R, error), GIOA ~func() E.Either[error, R], T0, C, R any](f F) func(T0) GRA {
|
||||||
return From1[GRA](func(r C, t0 T0) func() (R, error) {
|
return From1[GRA](func(r C, t0 T0) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0)
|
return f(r, t0)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From2 converts a function with 3 parameters returning a tuple into a function with 2 parameters returning a [GRA]
|
// From2 converts a function with 3 parameters returning a tuple into a function with 2 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From2[GRA ~func(C) GIOA, F ~func(C, T0, T1) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, C, R any](f F) func(T0, T1) GRA {
|
func From2[GRA ~func(C) GIOA, F ~func(C, T0, T1) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, C, R any](f F) func(T0, T1) GRA {
|
||||||
return RD.From2[GRA](func(r C, t0 T0, t1 T1) GIOA {
|
return RD.From2[GRA](func(r C, t0 T0, t1 T1) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1))
|
return E.Eitherize0(f(r, t0, t1))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [GRA]
|
// Eitherize2 converts a function with 2 parameters returning a tuple into a function with 2 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize2[GRA ~func(C) GIOA, F ~func(C, T0, T1) (R, error), GIOA ~func() E.Either[error, R], T0, T1, C, R any](f F) func(T0, T1) GRA {
|
func Eitherize2[GRA ~func(C) GIOA, F ~func(C, T0, T1) (R, error), GIOA ~func() E.Either[error, R], T0, T1, C, R any](f F) func(T0, T1) GRA {
|
||||||
return From2[GRA](func(r C, t0 T0, t1 T1) func() (R, error) {
|
return From2[GRA](func(r C, t0 T0, t1 T1) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1)
|
return f(r, t0, t1)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From3 converts a function with 4 parameters returning a tuple into a function with 3 parameters returning a [GRA]
|
// From3 converts a function with 4 parameters returning a tuple into a function with 3 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From3[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, C, R any](f F) func(T0, T1, T2) GRA {
|
func From3[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, C, R any](f F) func(T0, T1, T2) GRA {
|
||||||
return RD.From3[GRA](func(r C, t0 T0, t1 T1, t2 T2) GIOA {
|
return RD.From3[GRA](func(r C, t0 T0, t1 T1, t2 T2) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2))
|
return E.Eitherize0(f(r, t0, t1, t2))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [GRA]
|
// Eitherize3 converts a function with 3 parameters returning a tuple into a function with 3 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize3[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, C, R any](f F) func(T0, T1, T2) GRA {
|
func Eitherize3[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, C, R any](f F) func(T0, T1, T2) GRA {
|
||||||
return From3[GRA](func(r C, t0 T0, t1 T1, t2 T2) func() (R, error) {
|
return From3[GRA](func(r C, t0 T0, t1 T1, t2 T2) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2)
|
return f(r, t0, t1, t2)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From4 converts a function with 5 parameters returning a tuple into a function with 4 parameters returning a [GRA]
|
// From4 converts a function with 5 parameters returning a tuple into a function with 4 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From4[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) GRA {
|
func From4[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) GRA {
|
||||||
return RD.From4[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3) GIOA {
|
return RD.From4[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2, t3))
|
return E.Eitherize0(f(r, t0, t1, t2, t3))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [GRA]
|
// Eitherize4 converts a function with 4 parameters returning a tuple into a function with 4 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize4[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) GRA {
|
func Eitherize4[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, C, R any](f F) func(T0, T1, T2, T3) GRA {
|
||||||
return From4[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3) func() (R, error) {
|
return From4[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2, t3)
|
return f(r, t0, t1, t2, t3)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From5 converts a function with 6 parameters returning a tuple into a function with 5 parameters returning a [GRA]
|
// From5 converts a function with 6 parameters returning a tuple into a function with 5 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From5[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
func From5[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
||||||
return RD.From5[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4) GIOA {
|
return RD.From5[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2, t3, t4))
|
return E.Eitherize0(f(r, t0, t1, t2, t3, t4))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [GRA]
|
// Eitherize5 converts a function with 5 parameters returning a tuple into a function with 5 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize5[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
func Eitherize5[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, C, R any](f F) func(T0, T1, T2, T3, T4) GRA {
|
||||||
return From5[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4) func() (R, error) {
|
return From5[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2, t3, t4)
|
return f(r, t0, t1, t2, t3, t4)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From6 converts a function with 7 parameters returning a tuple into a function with 6 parameters returning a [GRA]
|
// From6 converts a function with 7 parameters returning a tuple into a function with 6 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From6[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
func From6[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
||||||
return RD.From6[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) GIOA {
|
return RD.From6[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5))
|
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [GRA]
|
// Eitherize6 converts a function with 6 parameters returning a tuple into a function with 6 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize6[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
func Eitherize6[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, C, R any](f F) func(T0, T1, T2, T3, T4, T5) GRA {
|
||||||
return From6[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) func() (R, error) {
|
return From6[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5)
|
return f(r, t0, t1, t2, t3, t4, t5)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From7 converts a function with 8 parameters returning a tuple into a function with 7 parameters returning a [GRA]
|
// From7 converts a function with 8 parameters returning a tuple into a function with 7 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From7[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
func From7[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
||||||
return RD.From7[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) GIOA {
|
return RD.From7[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6))
|
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [GRA]
|
// Eitherize7 converts a function with 7 parameters returning a tuple into a function with 7 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize7[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
func Eitherize7[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6) GRA {
|
||||||
return From7[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) func() (R, error) {
|
return From7[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6)
|
return f(r, t0, t1, t2, t3, t4, t5, t6)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From8 converts a function with 9 parameters returning a tuple into a function with 8 parameters returning a [GRA]
|
// From8 converts a function with 9 parameters returning a tuple into a function with 8 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From8[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
func From8[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
||||||
return RD.From8[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) GIOA {
|
return RD.From8[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6, t7))
|
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6, t7))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [GRA]
|
// Eitherize8 converts a function with 8 parameters returning a tuple into a function with 8 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize8[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
func Eitherize8[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7) GRA {
|
||||||
return From8[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) func() (R, error) {
|
return From8[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6, t7)
|
return f(r, t0, t1, t2, t3, t4, t5, t6, t7)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From9 converts a function with 10 parameters returning a tuple into a function with 9 parameters returning a [GRA]
|
// From9 converts a function with 10 parameters returning a tuple into a function with 9 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From9[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
func From9[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
||||||
return RD.From9[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) GIOA {
|
return RD.From9[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8))
|
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [GRA]
|
// Eitherize9 converts a function with 9 parameters returning a tuple into a function with 9 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize9[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
func Eitherize9[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8) GRA {
|
||||||
return From9[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) func() (R, error) {
|
return From9[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8)
|
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// From10 converts a function with 11 parameters returning a tuple into a function with 10 parameters returning a [GRA]
|
// From10 converts a function with 11 parameters returning a tuple into a function with 10 parameters returning a [GRA]
|
||||||
// The first parameter is considerd to be the context [C].
|
// The first parameter is considerd to be the context [C].
|
||||||
func From10[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
func From10[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) func() (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
||||||
return RD.From10[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) GIOA {
|
return RD.From10[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) GIOA {
|
||||||
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9))
|
return E.Eitherize0(f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [GRA]
|
// Eitherize10 converts a function with 10 parameters returning a tuple into a function with 10 parameters returning a [GRA]
|
||||||
// The first parameter is considered to be the context [C].
|
// The first parameter is considered to be the context [C].
|
||||||
func Eitherize10[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
func Eitherize10[GRA ~func(C) GIOA, F ~func(C, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) (R, error), GIOA ~func() E.Either[error, R], T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, C, R any](f F) func(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9) GRA {
|
||||||
return From10[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) func() (R, error) {
|
return From10[GRA](func(r C, t0 T0, t1 T1, t2 T2, t3 T3, t4 T4, t5 T5, t6 T6, t7 T7, t8 T8, t9 T9) func() (R, error) {
|
||||||
return func() (R, error) {
|
return func() (R, error) {
|
||||||
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9)
|
return f(r, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9)
|
||||||
}
|
}})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
843
tuple/gen.go
843
tuple/gen.go
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user