Help us shape the future of Go! Take the 2026 Go Developer Survey

iooption

package
v1.0.106 Latest Latest
Warning

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

Go to latest
Published: Jan 26, 2024 License: Apache-2.0 Imports: 9 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func After added in v1.0.97

func After[A any](timestamp time.Time) func(IOOption[A]) IOOption[A]

After creates an operation that passes after the given time.Time

func Alt added in v1.0.60

func Alt[A any](second L.Lazy[IOOption[A]]) func(IOOption[A]) IOOption[A]

Alt identifies an associative operation on a type constructor

func Ap

func Ap[B, A any](ma IOOption[A]) func(IOOption[func(A) B]) IOOption[B]

func Chain

func Chain[A, B any](f func(A) IOOption[B]) func(IOOption[A]) IOOption[B]

func ChainFirst added in v1.0.65

func ChainFirst[A, B any](f func(A) IOOption[B]) func(IOOption[A]) IOOption[A]

ChainFirst runs the monad returned by the function but returns the result of the original monad

func ChainFirstIOK added in v1.0.65

func ChainFirstIOK[A, B any](f func(A) IO.IO[B]) func(IOOption[A]) IOOption[A]

ChainFirstIOK runs the monad returned by the function but returns the result of the original monad

func ChainIOK

func ChainIOK[A, B any](f func(A) I.IO[B]) func(IOOption[A]) IOOption[B]

func ChainOptionK

func ChainOptionK[A, B any](f func(A) O.Option[B]) func(IOOption[A]) IOOption[B]

func Delay added in v1.0.97

func Delay[A any](delay time.Duration) func(IOOption[A]) IOOption[A]

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

func Fold

func Fold[A, B any](onNone func() I.IO[B], onSome func(A) I.IO[B]) func(IOOption[A]) I.IO[B]

Fold convers an IOOption into an [IO]

func Map

func Map[A, B any](f func(A) B) func(IOOption[A]) IOOption[B]

func Optionize0

func Optionize0[A any](f func() (A, bool)) func() IOOption[A]

func Optionize1

func Optionize1[T1, A any](f func(t1 T1) (A, bool)) func(T1) IOOption[A]

func Optionize2

func Optionize2[T1, T2, A any](f func(t1 T1, t2 T2) (A, bool)) func(T1, T2) IOOption[A]

func Optionize3

func Optionize3[T1, T2, T3, A any](f func(t1 T1, t2 T2, t3 T3) (A, bool)) func(T1, T2, T3) IOOption[A]

func Optionize4

func Optionize4[T1, T2, T3, T4, A any](f func(t1 T1, t2 T2, t3 T3, t4 T4) (A, bool)) func(T1, T2, T3, T4) IOOption[A]

func TraverseArray

func TraverseArray[A, B any](f func(A) IOOption[B]) func([]A) IOOption[[]B]

TraverseArray transforms an array

func TraverseArrayWithIndex added in v1.0.29

func TraverseArrayWithIndex[A, B any](f func(int, A) IOOption[B]) func([]A) IOOption[[]B]

TraverseArrayWithIndex transforms an array

func TraverseTuple1 added in v1.0.7

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

TraverseTuple1 converts a [T.Tuple1[IOOption[T]]] into a [IOOption[T.Tuple1[T1]]]

func TraverseTuple2 added in v1.0.7

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

TraverseTuple2 converts a [T.Tuple2[IOOption[T]]] into a [IOOption[T.Tuple2[T1, T2]]]

func TraverseTuple3 added in v1.0.7

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

TraverseTuple3 converts a [T.Tuple3[IOOption[T]]] into a [IOOption[T.Tuple3[T1, T2, T3]]]

func TraverseTuple4 added in v1.0.7

func TraverseTuple4[F1 ~func(A1) IOOption[T1], F2 ~func(A2) IOOption[T2], F3 ~func(A3) IOOption[T3], F4 ~func(A4) IOOption[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]) IOOption[T.Tuple4[T1, T2, T3, T4]]

TraverseTuple4 converts a [T.Tuple4[IOOption[T]]] into a [IOOption[T.Tuple4[T1, T2, T3, T4]]]

func TraverseTuple5 added in v1.0.7

func TraverseTuple5[F1 ~func(A1) IOOption[T1], F2 ~func(A2) IOOption[T2], F3 ~func(A3) IOOption[T3], F4 ~func(A4) IOOption[T4], F5 ~func(A5) IOOption[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]) IOOption[T.Tuple5[T1, T2, T3, T4, T5]]

TraverseTuple5 converts a [T.Tuple5[IOOption[T]]] into a [IOOption[T.Tuple5[T1, T2, T3, T4, T5]]]

func TraverseTuple6 added in v1.0.7

func TraverseTuple6[F1 ~func(A1) IOOption[T1], F2 ~func(A2) IOOption[T2], F3 ~func(A3) IOOption[T3], F4 ~func(A4) IOOption[T4], F5 ~func(A5) IOOption[T5], F6 ~func(A6) IOOption[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]) IOOption[T.Tuple6[T1, T2, T3, T4, T5, T6]]

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

func TraverseTuple7 added in v1.0.7

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

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

func TraverseTuple8 added in v1.0.7

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

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

func TraverseTuple9 added in v1.0.7

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

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

func TraverseTuple10 added in v1.0.7

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

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

func WithLock added in v1.0.50

func WithLock[E, A any](lock IO.IO[context.CancelFunc]) func(fa IOOption[A]) IOOption[A]

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

func WithResource added in v1.0.66

func WithResource[
	R, A, ANY any](onCreate IOOption[R], onRelease func(R) IOOption[ANY]) func(func(R) IOOption[A]) IOOption[A]

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

Types

type IOOption

type IOOption[A any] I.IO[O.Option[A]]

IO represents a synchronous computation that may fail refer to [https://andywhite.xyz/posts/2021-01-27-rte-foundations/#ioeitherlte-agt] for more details

func Bracket added in v1.0.50

func Bracket[E, A, B, ANY any](
	acquire IOOption[A],
	use func(A) IOOption[B],
	release func(A, O.Option[B]) IOOption[ANY],
) IOOption[B]

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 Defer

func Defer[A any](gen func() IOOption[A]) IOOption[A]

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

func Flatten

func Flatten[A any](mma IOOption[IOOption[A]]) IOOption[A]

func FromEither added in v1.0.33

func FromEither[E, A any](e ET.Either[E, A]) IOOption[A]

FromEither converts an [Either] into an IOOption

func FromIO

func FromIO[A any](mr I.IO[A]) IOOption[A]

func FromOption

func FromOption[A any](o O.Option[A]) IOOption[A]

func MakeIO

func MakeIO[A any](f IOOption[A]) IOOption[A]

func Memoize

func Memoize[A any](ma IOOption[A]) IOOption[A]

func MonadAlt added in v1.0.60

func MonadAlt[A any](first IOOption[A], second L.Lazy[IOOption[A]]) IOOption[A]

MonadAlt identifies an associative operation on a type constructor

func MonadAp

func MonadAp[B, A any](mab IOOption[func(A) B], ma IOOption[A]) IOOption[B]

func MonadChain

func MonadChain[A, B any](fa IOOption[A], f func(A) IOOption[B]) IOOption[B]

func MonadChainFirst added in v1.0.65

func MonadChainFirst[A, B any](ma IOOption[A], f func(A) IOOption[B]) IOOption[A]

MonadChainFirst runs the monad returned by the function but returns the result of the original monad

func MonadChainFirstIOK added in v1.0.65

func MonadChainFirstIOK[A, B any](first IOOption[A], f func(A) IO.IO[B]) IOOption[A]

MonadChainFirstIOK runs the monad returned by the function but returns the result of the original monad

func MonadChainIOK

func MonadChainIOK[A, B any](ma IOOption[A], f func(A) I.IO[B]) IOOption[B]

func MonadMap

func MonadMap[A, B any](fa IOOption[A], f func(A) B) IOOption[B]

func MonadOf

func MonadOf[A any](r A) IOOption[A]

func None

func None[A any]() IOOption[A]

func Of

func Of[A any](r A) IOOption[A]

func Retrying

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

Retrying will retry the actions according to the check policy

func SequenceArray

func SequenceArray[A any](ma []IOOption[A]) IOOption[[]A]

SequenceArray converts a homogeneous sequence of either into an either of sequence

func SequenceT1

func SequenceT1[T1 any](
	t1 IOOption[T1],
) IOOption[T.Tuple1[T1]]

SequenceT1 converts 1 [IOOption[T]] into a [IOOption[T.Tuple1[T1]]]

func SequenceT2

func SequenceT2[T1, T2 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
) IOOption[T.Tuple2[T1, T2]]

SequenceT2 converts 2 [IOOption[T]] into a [IOOption[T.Tuple2[T1, T2]]]

func SequenceT3

func SequenceT3[T1, T2, T3 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
) IOOption[T.Tuple3[T1, T2, T3]]

SequenceT3 converts 3 [IOOption[T]] into a [IOOption[T.Tuple3[T1, T2, T3]]]

func SequenceT4

func SequenceT4[T1, T2, T3, T4 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
	t4 IOOption[T4],
) IOOption[T.Tuple4[T1, T2, T3, T4]]

SequenceT4 converts 4 [IOOption[T]] into a [IOOption[T.Tuple4[T1, T2, T3, T4]]]

func SequenceT5 added in v1.0.7

func SequenceT5[T1, T2, T3, T4, T5 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
	t4 IOOption[T4],
	t5 IOOption[T5],
) IOOption[T.Tuple5[T1, T2, T3, T4, T5]]

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

func SequenceT6 added in v1.0.7

func SequenceT6[T1, T2, T3, T4, T5, T6 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
	t4 IOOption[T4],
	t5 IOOption[T5],
	t6 IOOption[T6],
) IOOption[T.Tuple6[T1, T2, T3, T4, T5, T6]]

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

func SequenceT7 added in v1.0.7

func SequenceT7[T1, T2, T3, T4, T5, T6, T7 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
	t4 IOOption[T4],
	t5 IOOption[T5],
	t6 IOOption[T6],
	t7 IOOption[T7],
) IOOption[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]

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

func SequenceT8 added in v1.0.7

func SequenceT8[T1, T2, T3, T4, T5, T6, T7, T8 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
	t4 IOOption[T4],
	t5 IOOption[T5],
	t6 IOOption[T6],
	t7 IOOption[T7],
	t8 IOOption[T8],
) IOOption[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]

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

func SequenceT9 added in v1.0.7

func SequenceT9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
	t4 IOOption[T4],
	t5 IOOption[T5],
	t6 IOOption[T6],
	t7 IOOption[T7],
	t8 IOOption[T8],
	t9 IOOption[T9],
) IOOption[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]

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

func SequenceT10 added in v1.0.7

func SequenceT10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](
	t1 IOOption[T1],
	t2 IOOption[T2],
	t3 IOOption[T3],
	t4 IOOption[T4],
	t5 IOOption[T5],
	t6 IOOption[T6],
	t7 IOOption[T7],
	t8 IOOption[T8],
	t9 IOOption[T9],
	t10 IOOption[T10],
) IOOption[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]

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

func SequenceTuple1 added in v1.0.7

func SequenceTuple1[T1 any](t T.Tuple1[IOOption[T1]]) IOOption[T.Tuple1[T1]]

SequenceTuple1 converts a [T.Tuple1[IOOption[T]]] into a [IOOption[T.Tuple1[T1]]]

func SequenceTuple2 added in v1.0.7

func SequenceTuple2[T1, T2 any](t T.Tuple2[IOOption[T1], IOOption[T2]]) IOOption[T.Tuple2[T1, T2]]

SequenceTuple2 converts a [T.Tuple2[IOOption[T]]] into a [IOOption[T.Tuple2[T1, T2]]]

func SequenceTuple3 added in v1.0.7

func SequenceTuple3[T1, T2, T3 any](t T.Tuple3[IOOption[T1], IOOption[T2], IOOption[T3]]) IOOption[T.Tuple3[T1, T2, T3]]

SequenceTuple3 converts a [T.Tuple3[IOOption[T]]] into a [IOOption[T.Tuple3[T1, T2, T3]]]

func SequenceTuple4 added in v1.0.7

func SequenceTuple4[T1, T2, T3, T4 any](t T.Tuple4[IOOption[T1], IOOption[T2], IOOption[T3], IOOption[T4]]) IOOption[T.Tuple4[T1, T2, T3, T4]]

SequenceTuple4 converts a [T.Tuple4[IOOption[T]]] into a [IOOption[T.Tuple4[T1, T2, T3, T4]]]

func SequenceTuple5 added in v1.0.7

func SequenceTuple5[T1, T2, T3, T4, T5 any](t T.Tuple5[IOOption[T1], IOOption[T2], IOOption[T3], IOOption[T4], IOOption[T5]]) IOOption[T.Tuple5[T1, T2, T3, T4, T5]]

SequenceTuple5 converts a [T.Tuple5[IOOption[T]]] into a [IOOption[T.Tuple5[T1, T2, T3, T4, T5]]]

func SequenceTuple6 added in v1.0.7

func SequenceTuple6[T1, T2, T3, T4, T5, T6 any](t T.Tuple6[IOOption[T1], IOOption[T2], IOOption[T3], IOOption[T4], IOOption[T5], IOOption[T6]]) IOOption[T.Tuple6[T1, T2, T3, T4, T5, T6]]

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

func SequenceTuple7 added in v1.0.7

func SequenceTuple7[T1, T2, T3, T4, T5, T6, T7 any](t T.Tuple7[IOOption[T1], IOOption[T2], IOOption[T3], IOOption[T4], IOOption[T5], IOOption[T6], IOOption[T7]]) IOOption[T.Tuple7[T1, T2, T3, T4, T5, T6, T7]]

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

func SequenceTuple8 added in v1.0.7

func SequenceTuple8[T1, T2, T3, T4, T5, T6, T7, T8 any](t T.Tuple8[IOOption[T1], IOOption[T2], IOOption[T3], IOOption[T4], IOOption[T5], IOOption[T6], IOOption[T7], IOOption[T8]]) IOOption[T.Tuple8[T1, T2, T3, T4, T5, T6, T7, T8]]

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

func SequenceTuple9 added in v1.0.7

func SequenceTuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9 any](t T.Tuple9[IOOption[T1], IOOption[T2], IOOption[T3], IOOption[T4], IOOption[T5], IOOption[T6], IOOption[T7], IOOption[T8], IOOption[T9]]) IOOption[T.Tuple9[T1, T2, T3, T4, T5, T6, T7, T8, T9]]

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

func SequenceTuple10 added in v1.0.7

func SequenceTuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 any](t T.Tuple10[IOOption[T1], IOOption[T2], IOOption[T3], IOOption[T4], IOOption[T5], IOOption[T6], IOOption[T7], IOOption[T8], IOOption[T9], IOOption[T10]]) IOOption[T.Tuple10[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]]

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

func Some

func Some[A any](r A) IOOption[A]

Directories

Path Synopsis
Code generated by go generate; DO NOT EDIT.
Code generated by go generate; DO NOT EDIT.

Jump to

Keyboard shortcuts

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