generic

package
v1.0.151 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2024 License: Apache-2.0 Imports: 22 Imported by: 1

Documentation

Overview

Code generated by go generate; DO NOT EDIT. This file was generated by robots at 2024-02-29 16:19:10.2613281 +0100 CET m=+0.025319001

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func After added in v1.0.97

func After[GA ~func() A, A any](timestamp time.Time) func(GA) GA

After creates an operation that passes after the given timestamp

func Ap

func Ap[GB ~func() B, GAB ~func() func(A) B, GA ~func() A, B, A any](ma GA) func(GAB) GB

func ApFirst

func ApFirst[GA ~func() A, GB ~func() B, GBA ~func() func(B) A, A, B any](second GB) func(GA) GA

ApFirst combines two effectful actions, keeping only the result of the first.

func ApFirstPar added in v1.0.20

func ApFirstPar[GA ~func() A, GB ~func() B, GBA ~func() func(B) A, A, B any](second GB) func(GA) GA

ApFirstPar combines two effectful actions, keeping only the result of the first.

func ApFirstSeq added in v1.0.20

func ApFirstSeq[GA ~func() A, GB ~func() B, GBA ~func() func(B) A, A, B any](second GB) func(GA) GA

ApFirstSeq combines two effectful actions, keeping only the result of the first.

func ApPar added in v1.0.4

func ApPar[GB ~func() B, GAB ~func() func(A) B, GA ~func() A, B, A any](ma GA) func(GAB) GB

func ApS added in v1.0.107

func ApS[GS1 ~func() S1, GS2 ~func() S2, GT ~func() T, S1, S2, T any](
	setter func(T) func(S1) S2,
	fa GT,
) func(GS1) GS2

ApS attaches a value to a context [S1] to produce a context [S2] by considering the context and the value concurrently

func ApSecond

func ApSecond[GA ~func() A, GB ~func() B, GBB ~func() func(B) B, A, B any](second GB) func(GA) GB

ApSecond combines two effectful actions, keeping only the result of the second.

func ApSeq added in v1.0.4

func ApSeq[GB ~func() B, GAB ~func() func(A) B, GA ~func() A, B, A any](ma GA) func(GAB) GB

func ApplicativeMonoid

func ApplicativeMonoid[GA ~func() A, A any](m M.Monoid[A]) M.Monoid[GA]

func ApplySemigroup

func ApplySemigroup[GA ~func() A, A any](s S.Semigroup[A]) S.Semigroup[GA]

func Bind added in v1.0.107

func Bind[GS1 ~func() S1, GS2 ~func() S2, GT ~func() T, S1, S2, T any](
	setter func(T) func(S1) S2,
	f func(S1) GT,
) func(GS1) GS2

Bind attaches the result of a computation to a context [S1] to produce a context [S2]

func BindTo added in v1.0.107

func BindTo[GS1 ~func() S1, GT ~func() T, S1, T any](
	setter func(T) S1,
) func(GT) GS1

BindTo initializes a new state [S1] from a value [T]

func Bracket added in v1.0.50

func Bracket[
	GA ~func() A,
	GB ~func() B,
	GANY ~func() ANY,
	A, B, ANY any](

	acquire GA,
	use func(A) GB,
	release func(A, B) GANY,
) GB

Bracket makes sure that a resource is cleaned up in the event of an error. The release action is called regardless of whether the body action returns and error or not.

func Chain

func Chain[GA ~func() A, GB ~func() B, A, B any](f func(A) GB) func(GA) GB

Chain composes computations in sequence, using the return value of one computation to determine the next computation.

func ChainFirst

func ChainFirst[GA ~func() A, GB ~func() B, A, B any](f func(A) GB) func(GA) GA

ChainFirst composes computations in sequence, using the return value of one computation to determine the next computation and keeping only the result of the first.

func ChainTo

func ChainTo[GA ~func() A, GB ~func() B, A, B any](fb GB) func(GA) GB

ChainTo composes computations in sequence, ignoring the return value of the first computation

func Defer

func Defer[GA ~func() A, A any](gen func() GA) GA

Defer creates an IO by creating a brand new IO via a generator function, each time

func Delay

func Delay[GA ~func() A, A any](delay time.Duration) func(GA) GA

Delay creates an operation that passes in the value after some delay

func Do added in v1.0.107

func Do[GS ~func() S, S any](
	empty S,
) GS

Bind creates an empty context of type [S] to be used with the Bind operation

func Eq

func Eq[GA ~func() A, A any](e EQ.Eq[A]) EQ.Eq[GA]

Eq implements the equals predicate for values contained in the IO monad

func Flap added in v1.0.39

func Flap[FAB ~func(A) B, GFAB ~func() FAB, GB ~func() B, A, B any](a A) func(GFAB) GB

func Flatten

func Flatten[GA ~func() A, GAA ~func() GA, A any](mma GAA) GA

func FromIO

func FromIO[GA ~func() A, A any](a GA) GA

func FromImpure

func FromImpure[GA ~func() any, IMP ~func()](f IMP) GA

FromImpure converts a side effect without a return value into a side effect that returns any

func FromStrictEquals added in v1.0.145

func FromStrictEquals[GA ~func() A, A comparable]() EQ.Eq[GA]

FromStrictEquals constructs an [EQ.Eq] from the canonical comparison function

func Functor added in v1.0.145

func Functor[A, B any, GA ~func() A, GB ~func() B]() functor.Functor[A, B, GA, GB]

Functor implements the functoric operations for [IO]

func Let added in v1.0.107

func Let[GS1 ~func() S1, GS2 ~func() S2, S1, S2, T any](
	key func(T) func(S1) S2,
	f func(S1) T,
) func(GS1) GS2

Let attaches the result of a computation to a context [S1] to produce a context [S2]

func LetTo added in v1.0.107

func LetTo[GS1 ~func() S1, GS2 ~func() S2, S1, S2, B any](
	key func(B) func(S1) S2,
	b B,
) func(GS1) GS2

LetTo attaches the a value to a context [S1] to produce a context [S2]

func Logf

func Logf[GA ~func() any, A any](prefix string) func(A) GA

func Logger

func Logger[GA ~func() any, A any](loggers ...*log.Logger) func(string) func(A) GA

func MakeIO

func MakeIO[GA ~func() A, A any](f func() A) GA

func Map

func Map[GA ~func() A, GB ~func() B, A, B any](f func(A) B) func(GA) GB

func MapTo

func MapTo[GA ~func() A, GB ~func() B, A, B any](b B) func(GA) GB

func Memoize

func Memoize[GA ~func() A, A any](ma GA) GA

Memoize computes the value of the provided IO monad lazily but exactly once

func Monad added in v1.0.113

func Monad[A, B any, GA ~func() A, GB ~func() B, GAB ~func() func(A) B]() monad.Monad[A, B, GA, GB, GAB]

Monad implements the monadic operations for [Option]

func MonadAp

func MonadAp[GA ~func() A, GB ~func() B, GAB ~func() func(A) B, A, B any](mab GAB, ma GA) GB

MonadAp implements the `ap` operation. Depending on a feature flag this will be sequential or parallel, the preferred implementation is parallel

func MonadApFirst

func MonadApFirst[GA ~func() A, GB ~func() B, GBA ~func() func(B) A, A, B any](first GA, second GB) GA

MonadApFirst combines two effectful actions, keeping only the result of the first.

func MonadApFirstPar added in v1.0.20

func MonadApFirstPar[GA ~func() A, GB ~func() B, GBA ~func() func(B) A, A, B any](first GA, second GB) GA

MonadApFirstPar combines two effectful actions, keeping only the result of the first.

func MonadApFirstSeq added in v1.0.20

func MonadApFirstSeq[GA ~func() A, GB ~func() B, GBA ~func() func(B) A, A, B any](first GA, second GB) GA

MonadApFirstSeq combines two effectful actions, keeping only the result of the first.

func MonadApPar added in v1.0.4

func MonadApPar[GA ~func() A, GB ~func() B, GAB ~func() func(A) B, A, B any](mab GAB, ma GA) GB

MonadApPar implements the applicative on two threads, the main thread executes mab and the actuall apply operation and the second thread computes ma. Communication between the threads happens via a channel

func MonadApSecond

func MonadApSecond[GA ~func() A, GB ~func() B, GBB ~func() func(B) B, A, B any](first GA, second GB) GB

MonadApSecond combines two effectful actions, keeping only the result of the second.

func MonadApSeq added in v1.0.4

func MonadApSeq[GA ~func() A, GB ~func() B, GAB ~func() func(A) B, A, B any](mab GAB, ma GA) GB

MonadApSeq implements the applicative on a single thread by first executing mab and the ma

func MonadChain

func MonadChain[GA ~func() A, GB ~func() B, A, B any](fa GA, f func(A) GB) GB

MonadChain composes computations in sequence, using the return value of one computation to determine the next computation.

func MonadChainFirst

func MonadChainFirst[GA ~func() A, GB ~func() B, A, B any](fa GA, f func(A) GB) GA

MonadChainFirst composes computations in sequence, using the return value of one computation to determine the next computation and keeping only the result of the first.

func MonadChainTo

func MonadChainTo[GA ~func() A, GB ~func() B, A, B any](fa GA, fb GB) GB

MonadChainTo composes computations in sequence, ignoring the return value of the first computation

func MonadFlap added in v1.0.39

func MonadFlap[FAB ~func(A) B, GFAB ~func() FAB, GB ~func() B, A, B any](fab GFAB, a A) GB

func MonadMap

func MonadMap[GA ~func() A, GB ~func() B, A, B any](fa GA, f func(A) B) GB

func MonadMapTo

func MonadMapTo[GA ~func() A, GB ~func() B, A, B any](fa GA, b B) GB

func MonadOf

func MonadOf[GA ~func() A, A any](a A) GA

func MonadTraverseArray

func MonadTraverseArray[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](tas AAS, f func(A) GB) GBS

func MonadTraverseArrayPar added in v1.0.132

func MonadTraverseArrayPar[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](tas AAS, f func(A) GB) GBS

func MonadTraverseArraySeq added in v1.0.132

func MonadTraverseArraySeq[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](tas AAS, f func(A) GB) GBS

func MonadTraverseRecord

func MonadTraverseRecord[GBS ~func() MB, MA ~map[K]A, GB ~func() B, MB ~map[K]B, K comparable, A, B any](ma MA, f func(A) GB) GBS

MonadTraverseRecord transforms a record using an IO transform an IO of a record

func MonadTraverseRecordPar added in v1.0.132

func MonadTraverseRecordPar[GBS ~func() MB, MA ~map[K]A, GB ~func() B, MB ~map[K]B, K comparable, A, B any](ma MA, f func(A) GB) GBS

MonadTraverseRecordPar transforms a record using an IO transform an IO of a record

func MonadTraverseRecordSeq added in v1.0.132

func MonadTraverseRecordSeq[GBS ~func() MB, MA ~map[K]A, GB ~func() B, MB ~map[K]B, K comparable, A, B any](ma MA, f func(A) GB) GBS

MonadTraverseRecordSeq transforms a record using an IO transform an IO of a record

func Now

func Now[GA ~func() time.Time]() GA

Now returns the current timestamp

func Of

func Of[GA ~func() A, A any](a A) GA

func Pointed added in v1.0.145

func Pointed[A any, GA ~func() A]() pointed.Pointed[A, GA]

Pointed implements the pointedic operations for [IO]

func Printf added in v1.0.6

func Printf[GA ~func() any, A any](prefix string) func(A) GA

func Retrying

func Retrying[GA ~func() A, A any](
	policy R.RetryPolicy,
	action func(R.RetryStatus) GA,
	check func(A) bool,
) GA

Retry combinator for actions that don't raise exceptions, but signal in their type the outcome has failed. Examples are the `Option`, `Either` and `EitherT` monads.

policy - refers to the retry policy action - converts a status into an operation to be executed check - checks if the result of the action needs to be retried

func SequenceArray

func SequenceArray[GA ~func() A, GAS ~func() AAS, AAS ~[]A, GAAS ~[]GA, A any](tas GAAS) GAS

func SequenceArrayPar added in v1.0.132

func SequenceArrayPar[GA ~func() A, GAS ~func() AAS, AAS ~[]A, GAAS ~[]GA, A any](tas GAAS) GAS

func SequenceArraySeq added in v1.0.132

func SequenceArraySeq[GA ~func() A, GAS ~func() AAS, AAS ~[]A, GAAS ~[]GA, A any](tas GAAS) GAS

func SequenceRecord

func SequenceRecord[GA ~func() A, GAS ~func() AAS, AAS ~map[K]A, GAAS ~map[K]GA, K comparable, A any](tas GAAS) GAS

func SequenceRecordPar added in v1.0.132

func SequenceRecordPar[GA ~func() A, GAS ~func() AAS, AAS ~map[K]A, GAAS ~map[K]GA, K comparable, A any](tas GAAS) GAS

func SequenceRecordSeq added in v1.0.132

func SequenceRecordSeq[GA ~func() A, GAS ~func() AAS, AAS ~map[K]A, GAAS ~map[K]GA, K comparable, A any](tas GAAS) GAS

func SequenceT1

func SequenceT1[
	G_TUPLE1 ~func() T.Tuple1[T1],
	G_T1 ~func() T1,
	T1 any](
	t1 G_T1,
) G_TUPLE1

SequenceT1 converts 1 [func() T] into a [func() T.Tuple1[T1]]

func SequenceT10 added in v1.0.7

func SequenceT10[
	G_TUPLE10 ~func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	G_T9 ~func() T9,
	G_T10 ~func() T10,
	T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
	t4 G_T4,
	t5 G_T5,
	t6 G_T6,
	t7 G_T7,
	t8 G_T8,
	t9 G_T9,
	t10 G_T10,
) G_TUPLE10

SequenceT10 converts 10 [func() T] into a [func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]

func SequenceT2

func SequenceT2[
	G_TUPLE2 ~func() T.Tuple2[T1, T2],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	T1, T2 any](
	t1 G_T1,
	t2 G_T2,
) G_TUPLE2

SequenceT2 converts 2 [func() T] into a [func() T.Tuple2[T1, T2]]

func SequenceT3

func SequenceT3[
	G_TUPLE3 ~func() T.Tuple3[T1, T2, T3],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	T1, T2, T3 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
) G_TUPLE3

SequenceT3 converts 3 [func() T] into a [func() T.Tuple3[T1, T2, T3]]

func SequenceT4

func SequenceT4[
	G_TUPLE4 ~func() T.Tuple4[T1, T2, T3, T4],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	T1, T2, T3, T4 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
	t4 G_T4,
) G_TUPLE4

SequenceT4 converts 4 [func() T] into a [func() T.Tuple4[T1, T2, T3, T4]]

func SequenceT5 added in v1.0.7

func SequenceT5[
	G_TUPLE5 ~func() T.Tuple5[T1, T2, T3, T4, T5],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	T1, T2, T3, T4, T5 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
	t4 G_T4,
	t5 G_T5,
) G_TUPLE5

SequenceT5 converts 5 [func() T] into a [func() T.Tuple5[T1, T2, T3, T4, T5]]

func SequenceT6 added in v1.0.7

func SequenceT6[
	G_TUPLE6 ~func() T.Tuple6[T1, T2, T3, T4, T5, T6],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	T1, T2, T3, T4, T5, T6 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
	t4 G_T4,
	t5 G_T5,
	t6 G_T6,
) G_TUPLE6

SequenceT6 converts 6 [func() T] into a [func() T.Tuple6[T1, T2, T3, T4, T5, T6]]

func SequenceT7 added in v1.0.7

func SequenceT7[
	G_TUPLE7 ~func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	T1, T2, T3, T4, T5, T6, T7 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
	t4 G_T4,
	t5 G_T5,
	t6 G_T6,
	t7 G_T7,
) G_TUPLE7

SequenceT7 converts 7 [func() T] into a [func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]

func SequenceT8 added in v1.0.7

func SequenceT8[
	G_TUPLE8 ~func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	T1, T2, T3, T4, T5, T6, T7, T8 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
	t4 G_T4,
	t5 G_T5,
	t6 G_T6,
	t7 G_T7,
	t8 G_T8,
) G_TUPLE8

SequenceT8 converts 8 [func() T] into a [func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]

func SequenceT9 added in v1.0.7

func SequenceT9[
	G_TUPLE9 ~func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	G_T9 ~func() T9,
	T1, T2, T3, T4, T5, T6, T7, T8, T9 any](
	t1 G_T1,
	t2 G_T2,
	t3 G_T3,
	t4 G_T4,
	t5 G_T5,
	t6 G_T6,
	t7 G_T7,
	t8 G_T8,
	t9 G_T9,
) G_TUPLE9

SequenceT9 converts 9 [func() T] into a [func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]

func SequenceTuple1 added in v1.0.7

func SequenceTuple1[
	G_TUPLE1 ~func() T.Tuple1[T1],
	G_T1 ~func() T1,
	T1 any](t T.Tuple1[G_T1]) G_TUPLE1

SequenceTuple1 converts a [T.Tuple1[func() T]] into a [func() T.Tuple1[T1]]

func SequenceTuple10 added in v1.0.7

func SequenceTuple10[
	G_TUPLE10 ~func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	G_T9 ~func() T9,
	G_T10 ~func() T10,
	T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t T.Tuple10[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8, G_T9, G_T10]) G_TUPLE10

SequenceTuple10 converts a [T.Tuple10[func() T]] into a [func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]

func SequenceTuple2 added in v1.0.7

func SequenceTuple2[
	G_TUPLE2 ~func() T.Tuple2[T1, T2],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	T1, T2 any](t T.Tuple2[G_T1, G_T2]) G_TUPLE2

SequenceTuple2 converts a [T.Tuple2[func() T]] into a [func() T.Tuple2[T1, T2]]

func SequenceTuple3 added in v1.0.7

func SequenceTuple3[
	G_TUPLE3 ~func() T.Tuple3[T1, T2, T3],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	T1, T2, T3 any](t T.Tuple3[G_T1, G_T2, G_T3]) G_TUPLE3

SequenceTuple3 converts a [T.Tuple3[func() T]] into a [func() T.Tuple3[T1, T2, T3]]

func SequenceTuple4 added in v1.0.7

func SequenceTuple4[
	G_TUPLE4 ~func() T.Tuple4[T1, T2, T3, T4],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	T1, T2, T3, T4 any](t T.Tuple4[G_T1, G_T2, G_T3, G_T4]) G_TUPLE4

SequenceTuple4 converts a [T.Tuple4[func() T]] into a [func() T.Tuple4[T1, T2, T3, T4]]

func SequenceTuple5 added in v1.0.7

func SequenceTuple5[
	G_TUPLE5 ~func() T.Tuple5[T1, T2, T3, T4, T5],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	T1, T2, T3, T4, T5 any](t T.Tuple5[G_T1, G_T2, G_T3, G_T4, G_T5]) G_TUPLE5

SequenceTuple5 converts a [T.Tuple5[func() T]] into a [func() T.Tuple5[T1, T2, T3, T4, T5]]

func SequenceTuple6 added in v1.0.7

func SequenceTuple6[
	G_TUPLE6 ~func() T.Tuple6[T1, T2, T3, T4, T5, T6],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	T1, T2, T3, T4, T5, T6 any](t T.Tuple6[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6]) G_TUPLE6

SequenceTuple6 converts a [T.Tuple6[func() T]] into a [func() T.Tuple6[T1, T2, T3, T4, T5, T6]]

func SequenceTuple7 added in v1.0.7

func SequenceTuple7[
	G_TUPLE7 ~func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	T1, T2, T3, T4, T5, T6, T7 any](t T.Tuple7[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7]) G_TUPLE7

SequenceTuple7 converts a [T.Tuple7[func() T]] into a [func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]

func SequenceTuple8 added in v1.0.7

func SequenceTuple8[
	G_TUPLE8 ~func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	T1, T2, T3, T4, T5, T6, T7, T8 any](t T.Tuple8[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8]) G_TUPLE8

SequenceTuple8 converts a [T.Tuple8[func() T]] into a [func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]

func SequenceTuple9 added in v1.0.7

func SequenceTuple9[
	G_TUPLE9 ~func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9],
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	G_T9 ~func() T9,
	T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t T.Tuple9[G_T1, G_T2, G_T3, G_T4, G_T5, G_T6, G_T7, G_T8, G_T9]) G_TUPLE9

SequenceTuple9 converts a [T.Tuple9[func() T]] into a [func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]

func TraverseArray

func TraverseArray[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](f func(A) GB) func(AAS) GBS

func TraverseArrayPar added in v1.0.132

func TraverseArrayPar[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](f func(A) GB) func(AAS) GBS

func TraverseArraySeq added in v1.0.132

func TraverseArraySeq[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](f func(A) GB) func(AAS) GBS

func TraverseArrayWithIndex added in v1.0.29

func TraverseArrayWithIndex[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](f func(int, A) GB) func(AAS) GBS

func TraverseArrayWithIndexPar added in v1.0.132

func TraverseArrayWithIndexPar[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](f func(int, A) GB) func(AAS) GBS

func TraverseArrayWithIndexSeq added in v1.0.132

func TraverseArrayWithIndexSeq[GB ~func() B, GBS ~func() BBS, AAS ~[]A, BBS ~[]B, A, B any](f func(int, A) GB) func(AAS) GBS

func TraverseRecord

func TraverseRecord[GBS ~func() MB, MA ~map[K]A, GB ~func() B, MB ~map[K]B, K comparable, A, B any](f func(A) GB) func(MA) GBS

TraverseRecord transforms a record using an IO transform an IO of a record

func TraverseRecordPar added in v1.0.132

func TraverseRecordPar[GBS ~func() MB, MA ~map[K]A, GB ~func() B, MB ~map[K]B, K comparable, A, B any](f func(A) GB) func(MA) GBS

TraverseRecordPar transforms a record using an IO transform an IO of a record

func TraverseRecordSeq added in v1.0.132

func TraverseRecordSeq[GBS ~func() MB, MA ~map[K]A, GB ~func() B, MB ~map[K]B, K comparable, A, B any](f func(A) GB) func(MA) GBS

TraverseRecordSeq transforms a record using an IO transform an IO of a record

func TraverseRecordWithIndex added in v1.0.29

func TraverseRecordWithIndex[GB ~func() B, GBS ~func() MB, MA ~map[K]A, MB ~map[K]B, K comparable, A, B any](f func(K, A) GB) func(MA) GBS

TraverseRecordWithIndex transforms a record using an IO transform an IO of a record

func TraverseRecordWithIndexPar added in v1.0.132

func TraverseRecordWithIndexPar[GB ~func() B, GBS ~func() MB, MA ~map[K]A, MB ~map[K]B, K comparable, A, B any](f func(K, A) GB) func(MA) GBS

TraverseRecordWithIndexPar transforms a record using an IO transform an IO of a record

func TraverseRecordWithIndexSeq added in v1.0.132

func TraverseRecordWithIndexSeq[GB ~func() B, GBS ~func() MB, MA ~map[K]A, MB ~map[K]B, K comparable, A, B any](f func(K, A) GB) func(MA) GBS

TraverseRecordWithIndexSeq transforms a record using an IO transform an IO of a record

func TraverseTuple1 added in v1.0.7

func TraverseTuple1[
	G_TUPLE1 ~func() T.Tuple1[T1],
	F1 ~func(A1) G_T1,
	G_T1 ~func() T1,
	A1, T1 any](f1 F1) func(T.Tuple1[A1]) G_TUPLE1

TraverseTuple1 converts a [T.Tuple1[func() T]] into a [func() T.Tuple1[T1]]

func TraverseTuple10 added in v1.0.7

func TraverseTuple10[
	G_TUPLE10 ~func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	F4 ~func(A4) G_T4,
	F5 ~func(A5) G_T5,
	F6 ~func(A6) G_T6,
	F7 ~func(A7) G_T7,
	F8 ~func(A8) G_T8,
	F9 ~func(A9) G_T9,
	F10 ~func(A10) G_T10,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	G_T9 ~func() T9,
	G_T10 ~func() T10,
	A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, T1, T2, T3, T4, T5, T6, T7, T8, T9, 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]) G_TUPLE10

TraverseTuple10 converts a [T.Tuple10[func() T]] into a [func() T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]

func TraverseTuple2 added in v1.0.7

func TraverseTuple2[
	G_TUPLE2 ~func() T.Tuple2[T1, T2],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	A1, A2, T1, T2 any](f1 F1, f2 F2) func(T.Tuple2[A1, A2]) G_TUPLE2

TraverseTuple2 converts a [T.Tuple2[func() T]] into a [func() T.Tuple2[T1, T2]]

func TraverseTuple3 added in v1.0.7

func TraverseTuple3[
	G_TUPLE3 ~func() T.Tuple3[T1, T2, T3],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	A1, A2, A3, T1, T2, T3 any](f1 F1, f2 F2, f3 F3) func(T.Tuple3[A1, A2, A3]) G_TUPLE3

TraverseTuple3 converts a [T.Tuple3[func() T]] into a [func() T.Tuple3[T1, T2, T3]]

func TraverseTuple4 added in v1.0.7

func TraverseTuple4[
	G_TUPLE4 ~func() T.Tuple4[T1, T2, T3, T4],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	F4 ~func(A4) G_T4,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	A1, A2, A3, A4, T1, T2, T3, T4 any](f1 F1, f2 F2, f3 F3, f4 F4) func(T.Tuple4[A1, A2, A3, A4]) G_TUPLE4

TraverseTuple4 converts a [T.Tuple4[func() T]] into a [func() T.Tuple4[T1, T2, T3, T4]]

func TraverseTuple5 added in v1.0.7

func TraverseTuple5[
	G_TUPLE5 ~func() T.Tuple5[T1, T2, T3, T4, T5],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	F4 ~func(A4) G_T4,
	F5 ~func(A5) G_T5,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	A1, A2, A3, A4, A5, T1, T2, T3, T4, T5 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5) func(T.Tuple5[A1, A2, A3, A4, A5]) G_TUPLE5

TraverseTuple5 converts a [T.Tuple5[func() T]] into a [func() T.Tuple5[T1, T2, T3, T4, T5]]

func TraverseTuple6 added in v1.0.7

func TraverseTuple6[
	G_TUPLE6 ~func() T.Tuple6[T1, T2, T3, T4, T5, T6],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	F4 ~func(A4) G_T4,
	F5 ~func(A5) G_T5,
	F6 ~func(A6) G_T6,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	A1, A2, A3, A4, A5, A6, T1, T2, T3, T4, T5, T6 any](f1 F1, f2 F2, f3 F3, f4 F4, f5 F5, f6 F6) func(T.Tuple6[A1, A2, A3, A4, A5, A6]) G_TUPLE6

TraverseTuple6 converts a [T.Tuple6[func() T]] into a [func() T.Tuple6[T1, T2, T3, T4, T5, T6]]

func TraverseTuple7 added in v1.0.7

func TraverseTuple7[
	G_TUPLE7 ~func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	F4 ~func(A4) G_T4,
	F5 ~func(A5) G_T5,
	F6 ~func(A6) G_T6,
	F7 ~func(A7) G_T7,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	A1, A2, A3, A4, A5, A6, A7, T1, T2, T3, T4, T5, T6, 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]) G_TUPLE7

TraverseTuple7 converts a [T.Tuple7[func() T]] into a [func() T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]

func TraverseTuple8 added in v1.0.7

func TraverseTuple8[
	G_TUPLE8 ~func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	F4 ~func(A4) G_T4,
	F5 ~func(A5) G_T5,
	F6 ~func(A6) G_T6,
	F7 ~func(A7) G_T7,
	F8 ~func(A8) G_T8,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	A1, A2, A3, A4, A5, A6, A7, A8, T1, T2, T3, T4, T5, T6, T7, 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]) G_TUPLE8

TraverseTuple8 converts a [T.Tuple8[func() T]] into a [func() T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]

func TraverseTuple9 added in v1.0.7

func TraverseTuple9[
	G_TUPLE9 ~func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9],
	F1 ~func(A1) G_T1,
	F2 ~func(A2) G_T2,
	F3 ~func(A3) G_T3,
	F4 ~func(A4) G_T4,
	F5 ~func(A5) G_T5,
	F6 ~func(A6) G_T6,
	F7 ~func(A7) G_T7,
	F8 ~func(A8) G_T8,
	F9 ~func(A9) G_T9,
	G_T1 ~func() T1,
	G_T2 ~func() T2,
	G_T3 ~func() T3,
	G_T4 ~func() T4,
	G_T5 ~func() T5,
	G_T6 ~func() T6,
	G_T7 ~func() T7,
	G_T8 ~func() T8,
	G_T9 ~func() T9,
	A1, A2, A3, A4, A5, A6, A7, A8, A9, T1, T2, T3, T4, T5, T6, T7, T8, 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]) G_TUPLE9

TraverseTuple9 converts a [T.Tuple9[func() T]] into a [func() T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]

func WithDuration added in v1.0.106

func WithDuration[GTA ~func() T.Tuple2[A, time.Duration], GA ~func() A, A any](a GA) GTA

WithDuration returns an operation that measures the duration of the operation

func WithLock added in v1.0.50

func WithLock[GA ~func() A, A any](lock func() context.CancelFunc) func(fa GA) GA

WithLock executes the provided IO operation in the scope of a lock

func WithResource added in v1.0.66

func WithResource[
	GA ~func() A,
	GR ~func() R,
	GANY ~func() ANY,
	R, A, ANY any](onCreate GR, onRelease func(R) GANY) func(func(R) GA) GA

WithResource constructs a function that creates a resource, then operates on it and then releases the resource

func WithTime added in v1.0.106

func WithTime[GTA ~func() T.Tuple3[A, time.Time, time.Time], GA ~func() A, A any](a GA) GTA

WithTime returns an operation that measures the start and end timestamp of the operation

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL