2023-07-14 23:52:14 +02:00
|
|
|
package readerioeither
|
|
|
|
|
|
|
|
import (
|
2023-07-18 15:57:54 +02:00
|
|
|
G "github.com/IBM/fp-go/context/readerioeither/generic"
|
2023-07-14 23:52:14 +02:00
|
|
|
)
|
|
|
|
|
|
|
|
// TraverseArray transforms an array
|
|
|
|
func TraverseArray[A, B any](f func(A) ReaderIOEither[B]) func([]A) ReaderIOEither[[]B] {
|
2023-07-18 15:24:00 +02:00
|
|
|
return G.TraverseArray[[]A, ReaderIOEither[[]B]](f)
|
2023-07-14 23:52:14 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// SequenceArray converts a homogeneous sequence of either into an either of sequence
|
|
|
|
func SequenceArray[A any](ma []ReaderIOEither[A]) ReaderIOEither[[]A] {
|
2023-07-18 15:24:00 +02:00
|
|
|
return G.SequenceArray[[]A, []ReaderIOEither[A], ReaderIOEither[[]A]](ma)
|
2023-07-14 23:52:14 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// TraverseRecord transforms a record
|
|
|
|
func TraverseRecord[K comparable, A, B any](f func(A) ReaderIOEither[B]) func(map[K]A) ReaderIOEither[map[K]B] {
|
2023-07-18 15:24:00 +02:00
|
|
|
return G.TraverseRecord[K, map[K]A, ReaderIOEither[map[K]B]](f)
|
2023-07-14 23:52:14 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
// SequenceRecord converts a homogeneous sequence of either into an either of sequence
|
|
|
|
func SequenceRecord[K comparable, A any](ma map[K]ReaderIOEither[A]) ReaderIOEither[map[K]A] {
|
2023-07-18 15:24:00 +02:00
|
|
|
return G.SequenceRecord[K, map[K]A, map[K]ReaderIOEither[A], ReaderIOEither[map[K]A]](ma)
|
2023-07-14 23:52:14 +02:00
|
|
|
}
|