mirror of
https://github.com/IBM/fp-go.git
synced 2025-08-10 22:31:32 +02:00
Merge pull request #62 from IBM/cleue-add-missing-chain-readeriok
fix: add missing ChainReaderIOK
This commit is contained in:
@@ -480,6 +480,34 @@ func ChainIOK[
|
|||||||
return RIE.ChainIOK[GRA, GRB](f)
|
return RIE.ChainIOK[GRA, GRB](f)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MonadChainReaderIOK[
|
||||||
|
GRB ~func(context.Context) GIOB,
|
||||||
|
GRA ~func(context.Context) GIOA,
|
||||||
|
GRIO ~func(context.Context) GIO,
|
||||||
|
|
||||||
|
GIOA ~func() E.Either[error, A],
|
||||||
|
GIOB ~func() E.Either[error, B],
|
||||||
|
|
||||||
|
GIO ~func() B,
|
||||||
|
|
||||||
|
A, B any](ma GRA, f func(A) GRIO) GRB {
|
||||||
|
return RIE.MonadChainReaderIOK[GRA, GRB](ma, f)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ChainReaderIOK[
|
||||||
|
GRB ~func(context.Context) GIOB,
|
||||||
|
GRA ~func(context.Context) GIOA,
|
||||||
|
GRIO ~func(context.Context) GIO,
|
||||||
|
|
||||||
|
GIOA ~func() E.Either[error, A],
|
||||||
|
GIOB ~func() E.Either[error, B],
|
||||||
|
|
||||||
|
GIO ~func() B,
|
||||||
|
|
||||||
|
A, B any](f func(A) GRIO) func(ma GRA) GRB {
|
||||||
|
return RIE.ChainReaderIOK[GRA, GRB](f)
|
||||||
|
}
|
||||||
|
|
||||||
func MonadChainFirstIOK[
|
func MonadChainFirstIOK[
|
||||||
GRA ~func(context.Context) GIOA,
|
GRA ~func(context.Context) GIOA,
|
||||||
GIOA ~func() E.Either[error, A],
|
GIOA ~func() E.Either[error, A],
|
||||||
|
@@ -164,6 +164,14 @@ func Never[A any]() ReaderIOEither[A] {
|
|||||||
return G.Never[ReaderIOEither[A]]()
|
return G.Never[ReaderIOEither[A]]()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MonadChainReaderIOK[A, B any](ma ReaderIOEither[A], f func(A) RIO.ReaderIO[B]) ReaderIOEither[B] {
|
||||||
|
return G.MonadChainReaderIOK[ReaderIOEither[B], ReaderIOEither[A]](ma, f)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ChainReaderIOK[A, B any](f func(A) RIO.ReaderIO[B]) func(ma ReaderIOEither[A]) ReaderIOEither[B] {
|
||||||
|
return G.ChainReaderIOK[ReaderIOEither[B], ReaderIOEither[A]](f)
|
||||||
|
}
|
||||||
|
|
||||||
func MonadChainIOK[A, B any](ma ReaderIOEither[A], f func(A) IO.IO[B]) ReaderIOEither[B] {
|
func MonadChainIOK[A, B any](ma ReaderIOEither[A], f func(A) IO.IO[B]) ReaderIOEither[B] {
|
||||||
return G.MonadChainIOK[ReaderIOEither[B], ReaderIOEither[A]](ma, f)
|
return G.MonadChainIOK[ReaderIOEither[B], ReaderIOEither[A]](ma, f)
|
||||||
}
|
}
|
||||||
|
@@ -147,6 +147,23 @@ func ChainReaderK[GEA ~func(R) GIOA, GEB ~func(R) GIOB, GIOA ~func() ET.Either[E
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func MonadChainReaderIOK[GEA ~func(R) GIOEA, GEB ~func(R) GIOEB, GIOEA ~func() ET.Either[E, A], GIOEB ~func() ET.Either[E, B], GIOB ~func() B, GB ~func(R) GIOB, R, E, A, B any](ma GEA, f func(A) GB) GEB {
|
||||||
|
return FR.MonadChainReaderK(
|
||||||
|
MonadChain[GEA, GEB, GIOEA, GIOEB, R, E, A, B],
|
||||||
|
RightReaderIO[GEB, GIOEB, GB, GIOB, R, E, B],
|
||||||
|
ma,
|
||||||
|
f,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
func ChainReaderIOK[GEA ~func(R) GIOEA, GEB ~func(R) GIOEB, GIOEA ~func() ET.Either[E, A], GIOEB ~func() ET.Either[E, B], GIOB ~func() B, GB ~func(R) GIOB, R, E, A, B any](f func(A) GB) func(GEA) GEB {
|
||||||
|
return FR.ChainReaderK(
|
||||||
|
MonadChain[GEA, GEB, GIOEA, GIOEB, R, E, A, B],
|
||||||
|
RightReaderIO[GEB, GIOEB, GB, GIOB, R, E, B],
|
||||||
|
f,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
func MonadChainIOEitherK[GEA ~func(R) GIOA, GEB ~func(R) GIOB, GIOA ~func() ET.Either[E, A], GIOB ~func() ET.Either[E, B], R, E, A, B any](ma GEA, f func(A) GIOB) GEB {
|
func MonadChainIOEitherK[GEA ~func(R) GIOA, GEB ~func(R) GIOB, GIOA ~func() ET.Either[E, A], GIOB ~func() ET.Either[E, B], R, E, A, B any](ma GEA, f func(A) GIOB) GEB {
|
||||||
return FIOE.MonadChainIOEitherK(
|
return FIOE.MonadChainIOEitherK(
|
||||||
MonadChain[GEA, GEB, GIOA, GIOB, R, E, A, B],
|
MonadChain[GEA, GEB, GIOA, GIOB, R, E, A, B],
|
||||||
|
Reference in New Issue
Block a user