Documentation ¶
Index ¶
- func TryPanic[E any](errVal E)
- type AnyCtrlFlow
- type CtrlFlow
- func (c CtrlFlow[B, C]) BreakValue() Option[B]
- func (c CtrlFlow[B, C]) ContinueValue() Option[C]
- func (c CtrlFlow[B, C]) EnumResult() EnumResult[C, B]
- func (c CtrlFlow[B, C]) Errable() Errable[B]
- func (c CtrlFlow[B, C]) IsBreak() bool
- func (c CtrlFlow[B, C]) IsContinue() bool
- func (c CtrlFlow[B, C]) Map(f func(B) B, g func(C) C) CtrlFlow[B, C]
- func (c CtrlFlow[B, C]) MapBreak(f func(B) B) CtrlFlow[B, C]
- func (c CtrlFlow[B, C]) MapContinue(f func(C) C) CtrlFlow[B, C]
- func (c CtrlFlow[B, C]) Option() Option[C]
- func (c CtrlFlow[B, C]) Result() Result[C]
- func (c CtrlFlow[B, C]) String() string
- func (c CtrlFlow[B, C]) ToX() AnyCtrlFlow
- func (c CtrlFlow[B, C]) ToXBreak() CtrlFlow[any, C]
- func (c CtrlFlow[B, C]) ToXContinue() CtrlFlow[B, any]
- func (c CtrlFlow[B, C]) UnwrapBreak() B
- func (c CtrlFlow[B, C]) UnwrapContinue() C
- func (c CtrlFlow[B, C]) XMap(f func(B) any, g func(C) any) CtrlFlow[any, any]
- func (c CtrlFlow[B, C]) XMapBreak(f func(B) any) CtrlFlow[any, C]
- func (c CtrlFlow[B, C]) XMapContinue(f func(C) any) CtrlFlow[B, any]
- type DeIterable
- type Digit
- type EnumResult
- func (r EnumResult[T, E]) And(res EnumResult[T, E]) EnumResult[T, E]
- func (r EnumResult[T, E]) AndThen(op func(T) EnumResult[T, E]) EnumResult[T, E]
- func (r EnumResult[T, E]) CtrlFlow() CtrlFlow[E, T]
- func (r EnumResult[T, E]) Err() Option[E]
- func (r EnumResult[T, E]) Errable() Errable[E]
- func (r EnumResult[T, E]) Expect(msg string) T
- func (r EnumResult[T, E]) ExpectErr(msg string) E
- func (r EnumResult[T, E]) Inspect(f func(T)) EnumResult[T, E]
- func (r EnumResult[T, E]) InspectErr(f func(E)) EnumResult[T, E]
- func (r EnumResult[T, E]) IsErr() bool
- func (r EnumResult[T, E]) IsErrAnd(f func(E) bool) bool
- func (r EnumResult[T, E]) IsOk() bool
- func (r EnumResult[T, E]) IsOkAnd(f func(T) bool) bool
- func (r EnumResult[T, E]) Map(f func(T) T) EnumResult[T, E]
- func (r EnumResult[T, E]) MapErr(op func(E) E) EnumResult[T, E]
- func (r EnumResult[T, E]) MapOr(defaultOk T, f func(T) T) T
- func (r EnumResult[T, E]) MapOrElse(defaultFn func(E) T, f func(T) T) T
- func (r EnumResult[T, E]) MarshalJSON() ([]byte, error)
- func (r EnumResult[T, E]) Next() Option[T]
- func (r EnumResult[T, E]) NextBack() Option[T]
- func (r EnumResult[T, E]) Ok() Option[T]
- func (r EnumResult[T, E]) Or(res EnumResult[T, E]) EnumResult[T, E]
- func (r EnumResult[T, E]) OrElse(op func(E) EnumResult[T, E]) EnumResult[T, E]
- func (r EnumResult[T, E]) Remaining() uint
- func (r EnumResult[T, E]) Result() Result[T]
- func (r EnumResult[T, E]) String() string
- func (r EnumResult[T, E]) ToX() EnumResult[any, any]
- func (r EnumResult[T, E]) ToXErr() EnumResult[T, any]
- func (r EnumResult[T, E]) ToXOk() EnumResult[any, E]
- func (r *EnumResult[T, E]) UnmarshalJSON(b []byte) error
- func (r EnumResult[T, E]) Unwrap() T
- func (r EnumResult[T, E]) UnwrapErr() E
- func (r EnumResult[T, E]) UnwrapOr(defaultT T) T
- func (r EnumResult[T, E]) UnwrapOrElse(defaultFn func(E) T) T
- func (r EnumResult[T, E]) XAnd(res EnumResult[any, E]) EnumResult[any, E]
- func (r EnumResult[T, E]) XAndThen(op func(T) EnumResult[any, E]) EnumResult[any, E]
- func (r EnumResult[T, E]) XErr() Option[any]
- func (r EnumResult[T, E]) XMap(f func(T) any) EnumResult[any, E]
- func (r EnumResult[T, E]) XMapErr(op func(E) any) EnumResult[T, any]
- func (r EnumResult[T, E]) XMapOr(defaultOk any, f func(T) any) any
- func (r EnumResult[T, E]) XMapOrElse(defaultFn func(E) any, f func(T) any) any
- func (r EnumResult[T, E]) XOk() Option[any]
- func (r EnumResult[T, E]) XOr(res EnumResult[T, any]) EnumResult[T, any]
- func (r EnumResult[T, E]) XOrElse(op func(E) EnumResult[T, any]) EnumResult[T, any]
- type ErrBox
- type Errable
- func (e Errable[E]) CtrlFlow() CtrlFlow[E, Void]
- func (e Errable[E]) EnumResult() EnumResult[Void, E]
- func (e Errable[E]) Inspect(f func()) Errable[E]
- func (e Errable[E]) InspectErr(f func(err E)) Errable[E]
- func (e Errable[E]) IsErr() bool
- func (e Errable[E]) IsOk() bool
- func (e Errable[E]) Option() Option[E]
- func (e Errable[E]) Result() Result[Void]
- func (e Errable[E]) ToError() error
- func (e Errable[E]) TryPanic()
- func (e Errable[E]) UnwrapErr() E
- func (e Errable[E]) UnwrapErrOr(def E) E
- type Integer
- type Iterable
- type IterableCount
- type IterableSizeHint
- type Mutex
- type Option
- func (o Option[T]) And(optb Option[T]) Option[T]
- func (o Option[T]) AndThen(f func(T) Option[T]) Option[T]
- func (o Option[T]) CtrlFlow() CtrlFlow[Void, T]
- func (o Option[T]) EnumOkOr(err any) EnumResult[T, any]
- func (o Option[T]) EnumOkOrElse(errFn func() any) EnumResult[T, any]
- func (o Option[T]) Expect(msg string) T
- func (o Option[T]) Filter(predicate func(T) bool) Option[T]
- func (o *Option[T]) GetOrInsert(some T) *T
- func (o *Option[T]) GetOrInsertWith(f func() T) *T
- func (o *Option[T]) Insert(some T) *T
- func (o Option[T]) Inspect(f func(T)) Option[T]
- func (o Option[T]) InspectNone(f func()) Option[T]
- func (o Option[T]) IsNone() bool
- func (o Option[T]) IsSome() bool
- func (o Option[T]) IsSomeAnd(f func(T) bool) bool
- func (o Option[T]) Map(f func(T) T) Option[T]
- func (o Option[T]) MapOr(defaultSome T, f func(T) T) T
- func (o Option[T]) MapOrElse(defaultFn func() T, f func(T) T) T
- func (o Option[T]) MarshalJSON() ([]byte, error)
- func (o Option[T]) Next() Option[T]
- func (o Option[T]) NextBack() Option[T]
- func (o Option[T]) OkOr(err any) Result[T]
- func (o Option[T]) OkOrElse(errFn func() any) Result[T]
- func (o Option[T]) Or(optb Option[T]) Option[T]
- func (o Option[T]) OrElse(f func() Option[T]) Option[T]
- func (o Option[T]) Remaining() uint
- func (o *Option[T]) Replace(some T) (old Option[T])
- func (o Option[T]) String() string
- func (o Option[T]) Take() Option[T]
- func (o Option[T]) ToErrable() Errable[T]
- func (o Option[T]) ToX() Option[any]
- func (o *Option[T]) UnmarshalJSON(b []byte) error
- func (o Option[T]) Unwrap() T
- func (o Option[T]) UnwrapOr(defaultSome T) T
- func (o Option[T]) UnwrapOrElse(defaultSome func() T) T
- func (o Option[T]) UnwrapUnchecked() T
- func (o Option[T]) XAnd(optb Option[any]) Option[any]
- func (o Option[T]) XAndThen(f func(T) Option[any]) Option[any]
- func (o Option[T]) XEnumOkOr(err any) EnumResult[any, any]
- func (o Option[T]) XEnumOkOrElse(errFn func() any) EnumResult[any, any]
- func (o Option[T]) XMap(f func(T) any) Option[any]
- func (o Option[T]) XMapOr(defaultSome any, f func(T) any) any
- func (o Option[T]) XMapOrElse(defaultFn func() any, f func(T) any) any
- func (o Option[T]) XOkOr(err any) Result[any]
- func (o Option[T]) XOkOrElse(errFn func() any) Result[any]
- func (o Option[T]) Xor(optb Option[T]) Option[T]
- type Ord
- type Ordering
- type Pair
- type PureInteger
- type RWMutex
- type Result
- func (r Result[T]) And(res Result[T]) Result[T]
- func (r Result[T]) AndThen(op func(T) Result[T]) Result[T]
- func (r Result[T]) ContainsErr(err any) bool
- func (r Result[T]) CtrlFlow() CtrlFlow[error, T]
- func (r Result[T]) EnumResult() EnumResult[T, error]
- func (r Result[T]) Err() error
- func (r Result[T]) ErrVal() any
- func (r Result[T]) Errable() Errable[error]
- func (r Result[T]) Expect(msg string) T
- func (r Result[T]) ExpectErr(msg string) error
- func (r Result[T]) Inspect(f func(T)) Result[T]
- func (r Result[T]) InspectErr(f func(error)) Result[T]
- func (r Result[T]) IsErr() bool
- func (r Result[T]) IsErrAnd(f func(error) bool) bool
- func (r Result[T]) IsOk() bool
- func (r Result[T]) IsOkAnd(f func(T) bool) bool
- func (r Result[T]) Map(f func(T) T) Result[T]
- func (r Result[T]) MapErr(op func(error) (newErr any)) Result[T]
- func (r Result[T]) MapOr(defaultOk T, f func(T) T) T
- func (r Result[T]) MapOrElse(defaultFn func(error) T, f func(T) T) T
- func (r Result[T]) MarshalJSON() ([]byte, error)
- func (r Result[T]) Next() Option[T]
- func (r Result[T]) NextBack() Option[T]
- func (r Result[T]) Ok() Option[T]
- func (r Result[T]) Or(res Result[T]) Result[T]
- func (r Result[T]) OrElse(op func(error) Result[T]) Result[T]
- func (r Result[T]) Remaining() uint
- func (r Result[T]) String() string
- func (r Result[T]) ToX() Result[any]
- func (r *Result[T]) UnmarshalJSON(b []byte) error
- func (r Result[T]) Unwrap() T
- func (r Result[T]) UnwrapErr() error
- func (r Result[T]) UnwrapOr(defaultOk T) T
- func (r Result[T]) UnwrapOrElse(defaultFn func(error) T) T
- func (r Result[T]) XAnd(res Result[any]) Result[any]
- func (r Result[T]) XAndThen(op func(T) Result[any]) Result[any]
- func (r Result[T]) XMap(f func(T) any) Result[any]
- func (r Result[T]) XMapOr(defaultOk any, f func(T) any) any
- func (r Result[T]) XMapOrElse(defaultFn func(error) any, f func(T) any) any
- func (r Result[T]) XOk() Option[any]
- type SigCtrlFlow
- type SizeIterable
- type Void
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AnyCtrlFlow ¶ added in v0.7.0
type AnyCtrlFlow = SigCtrlFlow[any]
AnyCtrlFlow is a placeholder for wildcard control flow statements.
func AnyBreak ¶ added in v0.7.0
func AnyBreak(b any) AnyCtrlFlow
AnyBreak returns a AnyCtrlFlow that tells the operation to break.
func AnyContinue ¶ added in v0.7.0
func AnyContinue(c any) AnyCtrlFlow
AnyContinue returns a AnyCtrlFlow that tells the operation to continue.
type CtrlFlow ¶ added in v0.7.0
CtrlFlow is used to tell an operation whether it should exit early or go on as usual.
This is used when exposing things (like graph traversals or visitors) where you want the user to be able to choose whether to exit early.
func (CtrlFlow[B, C]) BreakValue ¶ added in v0.7.0
BreakValue returns the inner value of a `Break` variant.
func (CtrlFlow[B, C]) ContinueValue ¶ added in v0.7.0
ContinueValue returns the inner value of a `Continue` variant.
func (CtrlFlow[B, C]) EnumResult ¶ added in v0.7.0
func (c CtrlFlow[B, C]) EnumResult() EnumResult[C, B]
EnumResult converts the `CtrlFlow[B,C]` to an `EnumResult[C,B]`.
func (CtrlFlow[B, C]) Errable ¶ added in v0.7.0
Errable converts the `CtrlFlow[B,C]` to an `Errable[B]`.
func (CtrlFlow[B, C]) IsBreak ¶ added in v0.7.0
IsBreak returns `true` if this is a `Break` variant.
func (CtrlFlow[B, C]) IsContinue ¶ added in v0.7.0
IsContinue returns `true` if this is a `Continue` variant.
func (CtrlFlow[B, C]) Map ¶ added in v0.7.0
Map maps both `Break` and `Continue` values by applying a function to the respective value in case it exists.
func (CtrlFlow[B, C]) MapBreak ¶ added in v0.7.0
MapBreak maps `Break` value by applying a function to the break value in case it exists.
func (CtrlFlow[B, C]) MapContinue ¶ added in v0.7.0
MapContinue maps `Continue` value by applying a function to the continue value in case it exists.
func (CtrlFlow[B, C]) Result ¶ added in v0.7.0
Result converts the `CtrlFlow[B,C]` to an `Result[C]`.
func (CtrlFlow[B, C]) ToX ¶ added in v0.7.0
func (c CtrlFlow[B, C]) ToX() AnyCtrlFlow
func (CtrlFlow[B, C]) ToXContinue ¶ added in v0.7.0
func (CtrlFlow[B, C]) UnwrapBreak ¶ added in v0.7.0
func (c CtrlFlow[B, C]) UnwrapBreak() B
UnwrapBreak returns the inner value of a `Break` variant.
Panics if the variant is not a `Break`.
func (CtrlFlow[B, C]) UnwrapContinue ¶ added in v0.7.0
func (c CtrlFlow[B, C]) UnwrapContinue() C
UnwrapContinue returns the inner value of a `Continue` variant.
Panics if the variant is not a `Continue`.
func (CtrlFlow[B, C]) XMap ¶ added in v0.7.0
XMap maps both `Break` and `Continue` values by applying functions to the break and continue values in case they exist.
type DeIterable ¶ added in v0.7.0
type DeIterable[T any] interface { Iterable[T] SizeIterable[T] NextBack() Option[T] }
type EnumResult ¶ added in v0.7.0
EnumResult represents a success (T) or failure (E) enumeration.
func EnumErr ¶ added in v0.7.0
func EnumErr[T any, E any](err E) EnumResult[T, E]
EnumErr wraps a failure result enumeration.
func EnumOk ¶ added in v0.7.0
func EnumOk[T any, E any](ok T) EnumResult[T, E]
EnumOk wraps a successful result enumeration.
func (EnumResult[T, E]) And ¶ added in v0.7.0
func (r EnumResult[T, E]) And(res EnumResult[T, E]) EnumResult[T, E]
And returns res if the result is T, otherwise returns the E of self.
func (EnumResult[T, E]) AndThen ¶ added in v0.7.0
func (r EnumResult[T, E]) AndThen(op func(T) EnumResult[T, E]) EnumResult[T, E]
AndThen calls op if the result is T, otherwise returns the E of self. This function can be used for control flow based on EnumResult values.
func (EnumResult[T, E]) CtrlFlow ¶ added in v0.7.0
func (r EnumResult[T, E]) CtrlFlow() CtrlFlow[E, T]
CtrlFlow returns the `CtrlFlow[E, T]`.
func (EnumResult[T, E]) Err ¶ added in v0.7.0
func (r EnumResult[T, E]) Err() Option[E]
Err returns E value `Option[E]`.
func (EnumResult[T, E]) Errable ¶ added in v0.7.0
func (r EnumResult[T, E]) Errable() Errable[E]
Errable converts from `EnumResult[T,E]` to `Errable[E]`.
func (EnumResult[T, E]) Expect ¶ added in v0.7.0
func (r EnumResult[T, E]) Expect(msg string) T
Expect returns the contained T value. Panics if the value is an E, with a panic message including the passed message, and the content of the E.
func (EnumResult[T, E]) ExpectErr ¶ added in v0.7.0
func (r EnumResult[T, E]) ExpectErr(msg string) E
ExpectErr returns the contained E. Panics if the value is not an E, with a panic message including the passed message, and the content of the T.
func (EnumResult[T, E]) Inspect ¶ added in v0.7.0
func (r EnumResult[T, E]) Inspect(f func(T)) EnumResult[T, E]
Inspect calls the provided closure with a reference to the contained value (if no E).
func (EnumResult[T, E]) InspectErr ¶ added in v0.7.0
func (r EnumResult[T, E]) InspectErr(f func(E)) EnumResult[T, E]
InspectErr calls the provided closure with a reference to the contained E (if E).
func (EnumResult[T, E]) IsErr ¶ added in v0.7.0
func (r EnumResult[T, E]) IsErr() bool
IsErr returns true if the result is E.
func (EnumResult[T, E]) IsErrAnd ¶ added in v0.7.0
func (r EnumResult[T, E]) IsErrAnd(f func(E) bool) bool
IsErrAnd returns true if the result is E and the value inside it matches a predicate.
func (EnumResult[T, E]) IsOk ¶ added in v0.7.0
func (r EnumResult[T, E]) IsOk() bool
IsOk returns true if the result is ok.
func (EnumResult[T, E]) IsOkAnd ¶ added in v0.7.0
func (r EnumResult[T, E]) IsOkAnd(f func(T) bool) bool
IsOkAnd returns true if the result is Ok and the value inside it matches a predicate.
func (EnumResult[T, E]) Map ¶ added in v0.7.0
func (r EnumResult[T, E]) Map(f func(T) T) EnumResult[T, E]
Map maps a EnumResult[T,E] to EnumResult[T,E] by applying a function to a contained T value, leaving an E untouched. This function can be used to compose the results of two functions.
func (EnumResult[T, E]) MapErr ¶ added in v0.7.0
func (r EnumResult[T, E]) MapErr(op func(E) E) EnumResult[T, E]
MapErr maps a EnumResult[T,E] to EnumResult[T,E] by applying a function to a contained E, leaving an T value untouched. This function can be used to pass through a successful result while handling an error.
func (EnumResult[T, E]) MapOr ¶ added in v0.7.0
func (r EnumResult[T, E]) MapOr(defaultOk T, f func(T) T) T
MapOr returns the provided default (if E), or applies a function to the contained value (if no E), Arguments passed to map_or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use MapOrElse, which is lazily evaluated.
func (EnumResult[T, E]) MapOrElse ¶ added in v0.7.0
func (r EnumResult[T, E]) MapOrElse(defaultFn func(E) T, f func(T) T) T
MapOrElse maps a EnumResult[T,E] to T by applying fallback function default to a contained E, or function f to a contained T value. This function can be used to unpack a successful result while handling an E.
func (EnumResult[T, E]) MarshalJSON ¶ added in v0.7.0
func (r EnumResult[T, E]) MarshalJSON() ([]byte, error)
func (EnumResult[T, E]) Next ¶ added in v0.7.0
func (r EnumResult[T, E]) Next() Option[T]
func (EnumResult[T, E]) NextBack ¶ added in v0.7.0
func (r EnumResult[T, E]) NextBack() Option[T]
func (EnumResult[T, E]) Ok ¶ added in v0.7.0
func (r EnumResult[T, E]) Ok() Option[T]
Ok converts from `Result[T,E]` to `Option[T]`.
func (EnumResult[T, E]) Or ¶ added in v0.7.0
func (r EnumResult[T, E]) Or(res EnumResult[T, E]) EnumResult[T, E]
Or returns res if the result is E, otherwise returns the T value of r. Arguments passed to or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use OrElse, which is lazily evaluated.
func (EnumResult[T, E]) OrElse ¶ added in v0.7.0
func (r EnumResult[T, E]) OrElse(op func(E) EnumResult[T, E]) EnumResult[T, E]
OrElse calls op if the result is E, otherwise returns the T value of self. This function can be used for control flow based on result values.
func (EnumResult[T, E]) Remaining ¶ added in v0.7.0
func (r EnumResult[T, E]) Remaining() uint
func (EnumResult[T, E]) Result ¶ added in v0.7.0
func (r EnumResult[T, E]) Result() Result[T]
Result converts from `EnumResult[T,E]` to `Result[T]`.
func (EnumResult[T, E]) String ¶ added in v0.7.0
func (r EnumResult[T, E]) String() string
String returns the string representation.
func (EnumResult[T, E]) ToX ¶ added in v0.7.0
func (r EnumResult[T, E]) ToX() EnumResult[any, any]
ToX converts from `EnumResult[T,E]` to EnumResult[any,any].
func (EnumResult[T, E]) ToXErr ¶ added in v0.7.0
func (r EnumResult[T, E]) ToXErr() EnumResult[T, any]
ToXErr converts from `EnumResult[T,E]` to EnumResult[T,any].
func (EnumResult[T, E]) ToXOk ¶ added in v0.7.0
func (r EnumResult[T, E]) ToXOk() EnumResult[any, E]
ToXOk converts from `EnumResult[T,E]` to EnumResult[any,E].
func (*EnumResult[T, E]) UnmarshalJSON ¶ added in v0.7.0
func (r *EnumResult[T, E]) UnmarshalJSON(b []byte) error
func (EnumResult[T, E]) Unwrap ¶ added in v0.7.0
func (r EnumResult[T, E]) Unwrap() T
Unwrap returns the contained T value. Because this function may panic, its use is generally discouraged. Instead, prefer to use pattern matching and handle the E case explicitly, or call UnwrapOr or UnwrapOrElse.
func (EnumResult[T, E]) UnwrapErr ¶ added in v0.7.0
func (r EnumResult[T, E]) UnwrapErr() E
UnwrapErr returns the contained E. Panics if the value is not an E, with a custom panic message provided by the T's value.
func (EnumResult[T, E]) UnwrapOr ¶ added in v0.7.0
func (r EnumResult[T, E]) UnwrapOr(defaultT T) T
UnwrapOr returns the contained T value or a provided default. Arguments passed to UnwrapOr are eagerly evaluated; if you are passing the result of a function call, it is recommended to use UnwrapOrElse, which is lazily evaluated.
func (EnumResult[T, E]) UnwrapOrElse ¶ added in v0.7.0
func (r EnumResult[T, E]) UnwrapOrElse(defaultFn func(E) T) T
UnwrapOrElse returns the contained T value or computes it from a closure.
func (EnumResult[T, E]) XAnd ¶ added in v0.7.0
func (r EnumResult[T, E]) XAnd(res EnumResult[any, E]) EnumResult[any, E]
XAnd returns res if the result is T, otherwise returns the E of self.
func (EnumResult[T, E]) XAndThen ¶ added in v0.7.0
func (r EnumResult[T, E]) XAndThen(op func(T) EnumResult[any, E]) EnumResult[any, E]
XAndThen calls op if the result is ok, otherwise returns the E of self. This function can be used for control flow based on EnumResult values.
func (EnumResult[T, E]) XErr ¶ added in v1.0.0
func (r EnumResult[T, E]) XErr() Option[any]
XErr returns E value `Option[any]`.
func (EnumResult[T, E]) XMap ¶ added in v0.7.0
func (r EnumResult[T, E]) XMap(f func(T) any) EnumResult[any, E]
XMap maps a EnumResult[T,E] to EnumResult[any,E] by applying a function to a contained `any` value, leaving an E untouched. This function can be used to compose the results of two functions.
func (EnumResult[T, E]) XMapErr ¶ added in v0.7.0
func (r EnumResult[T, E]) XMapErr(op func(E) any) EnumResult[T, any]
XMapErr maps a EnumResult[T,E] to EnumResult[T,any] by applying a function to a contained `any`, leaving an T value untouched. This function can be used to pass through a successful result while handling an error.
func (EnumResult[T, E]) XMapOr ¶ added in v0.7.0
func (r EnumResult[T, E]) XMapOr(defaultOk any, f func(T) any) any
XMapOr returns the provided default (if E), or applies a function to the contained value (if no E), Arguments passed to map_or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use MapOrElse, which is lazily evaluated.
func (EnumResult[T, E]) XMapOrElse ¶ added in v0.7.0
func (r EnumResult[T, E]) XMapOrElse(defaultFn func(E) any, f func(T) any) any
XMapOrElse maps a EnumResult[T,E] to `any` type by applying fallback function default to a contained E, or function f to a contained T value. This function can be used to unpack a successful result while handling an E.
func (EnumResult[T, E]) XOk ¶ added in v1.0.0
func (r EnumResult[T, E]) XOk() Option[any]
XOk converts from `Result[T,E]` to `Option[any]`.
func (EnumResult[T, E]) XOr ¶ added in v0.7.0
func (r EnumResult[T, E]) XOr(res EnumResult[T, any]) EnumResult[T, any]
XOr returns res if the result is E, otherwise returns the T value of r. Arguments passed to or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use XOrElse, which is lazily evaluated.
func (EnumResult[T, E]) XOrElse ¶ added in v0.7.0
func (r EnumResult[T, E]) XOrElse(op func(E) EnumResult[T, any]) EnumResult[T, any]
XOrElse calls op if the result is E, otherwise returns the T value of self. This function can be used for control flow based on result values.
type ErrBox ¶ added in v1.2.2
type ErrBox struct {
// contains filtered or unexported fields
}
ErrBox is a wrapper for any error type.
type Errable ¶ added in v0.7.0
type Errable[E any] struct { // contains filtered or unexported fields }
Errable is the type that indicates whether there is an error.
Example ¶
package main import ( "fmt" "github.com/andeya/gust" ) func main() { var hasErr = true var f = func() gust.Errable[int] { if hasErr { return gust.ToErrable(1) } return gust.NonErrable[int]() } var r = f() fmt.Println(r.IsErr()) fmt.Println(r.UnwrapErr()) fmt.Printf("%#v", r.ToError()) }
Output: true 1 &gust.ErrBox{val:1}
func NonErrable ¶ added in v0.7.0
NonErrable returns no error object.
func (Errable[E]) EnumResult ¶ added in v0.7.0
func (e Errable[E]) EnumResult() EnumResult[Void, E]
func (Errable[E]) InspectErr ¶ added in v1.2.2
func (Errable[E]) TryPanic ¶ added in v1.2.1
func (e Errable[E]) TryPanic()
TryPanic panics if the errVal is not nil.
func (Errable[E]) UnwrapErrOr ¶ added in v0.7.0
func (e Errable[E]) UnwrapErrOr(def E) E
type IterableCount ¶ added in v0.7.0
type IterableCount interface {
Count() uint
}
type IterableSizeHint ¶ added in v0.7.0
type Mutex ¶ added in v1.2.2
type Mutex[T any] struct { // contains filtered or unexported fields }
Mutex is a wrapper of `sync.Mutex` that holds a value.
func (*Mutex[T]) Lock ¶ added in v1.2.2
func (m *Mutex[T]) Lock() T
Lock locks m. If the lock is already in use, the calling goroutine blocks until the mutex is available.
func (*Mutex[T]) TryLock ¶ added in v1.2.2
TryLock tries to lock m and reports whether it succeeded.
Note that while correct uses of TryLock do exist, they are rare, and use of TryLock is often a sign of a deeper problem in a particular use of mutexes.
func (*Mutex[T]) Unlock ¶ added in v1.2.2
func (m *Mutex[T]) Unlock(newData ...T)
Unlock unlocks m. It is a run-time error if m is not locked on entry to Unlock.
A locked Mutex is not associated with a particular goroutine. It is allowed for one goroutine to lock a Mutex and then arrange for another goroutine to unlock it.
type Option ¶
type Option[T any] struct { // contains filtered or unexported fields }
Option can be used to avoid `(T, bool)` and `if *U != nil`, represents an optional value:
every [`Option`] is either [`Some`](which is non-none T), or [`None`](which is none).
func BoolOpt ¶ added in v1.0.0
BoolOpt wraps a value as an Option. NOTE:
`ok=true` is wrapped as Some, and `ok=false` is wrapped as None.
func None ¶
None returns a none. NOTE:
Option[T].IsNone() returns true, and Option[T].IsSome() returns false.
func PtrOpt ¶ added in v1.0.0
PtrOpt wraps a pointer value. NOTE:
`non-nil pointer` is wrapped as Some, and `nil pointer` is wrapped as None.
func Some ¶
Some wraps a non-none value. NOTE:
Option[T].IsSome() returns true. and Option[T].IsNone() returns false.
func ZeroOpt ¶ added in v1.0.0
func ZeroOpt[T comparable](val T) Option[T]
ZeroOpt wraps a value as an Option. NOTE:
`non-zero T` is wrapped as Some, and `zero T` is wrapped as None.
func (Option[T]) AndThen ¶
AndThen returns [`None`] if the option is [`None`], otherwise calls `f` with the
func (Option[T]) EnumOkOr ¶ added in v0.7.0
func (o Option[T]) EnumOkOr(err any) EnumResult[T, any]
EnumOkOr transforms the `Option[T]` into a [`EnumResult[T,any]`], mapping [`Some(v)`] to [`EnumOk(v)`] and [`None`] to [`EnumErr(err)`].
func (Option[T]) EnumOkOrElse ¶ added in v0.7.0
func (o Option[T]) EnumOkOrElse(errFn func() any) EnumResult[T, any]
EnumOkOrElse transforms the `Option[T]` into a [`EnumResult[T,any]`], mapping [`Some(v)`] to [`EnumOk(v)`] and [`None`] to [`EnumErr(errFn())`].
func (Option[T]) Expect ¶
Expect returns the contained [`Some`] value. Panics if the value is none with a custom panic message provided by `msg`.
func (Option[T]) Filter ¶
Filter returns [`None`] if the option is [`None`], otherwise calls `predicate` with the wrapped value and returns.
func (*Option[T]) GetOrInsert ¶
func (o *Option[T]) GetOrInsert(some T) *T
GetOrInsert inserts `value` into the option if it is [`None`], then returns the contained value pointer.
func (*Option[T]) GetOrInsertWith ¶
func (o *Option[T]) GetOrInsertWith(f func() T) *T
GetOrInsertWith inserts a value computed from `f` into the option if it is [`None`], then returns the contained value.
func (*Option[T]) Insert ¶
func (o *Option[T]) Insert(some T) *T
Insert inserts `value` into the option, then returns its pointer.
func (Option[T]) Inspect ¶
Inspect calls the provided closure with a reference to the contained value (if it has value).
func (Option[T]) InspectNone ¶
InspectNone calls the provided closure (if it is none).
func (Option[T]) IsSomeAnd ¶
IsSomeAnd returns `true` if the option has value and the value inside it matches a predicate.
func (Option[T]) Map ¶
Map maps an `Option[T]` to `Option[T]` by applying a function to a contained value.
func (Option[T]) MapOr ¶
func (o Option[T]) MapOr(defaultSome T, f func(T) T) T
MapOr returns the provided default value (if none), or applies a function to the contained value (if any).
func (Option[T]) MapOrElse ¶
func (o Option[T]) MapOrElse(defaultFn func() T, f func(T) T) T
MapOrElse computes a default function value (if none), or applies a different function to the contained value (if any).
func (Option[T]) MarshalJSON ¶ added in v0.6.0
func (Option[T]) OkOr ¶
OkOr transforms the `Option[T]` into a [`Result[T]`], mapping [`Some(v)`] to [`Ok(v)`] and [`None`] to [`Err(err)`].
func (Option[T]) OkOrElse ¶
OkOrElse transforms the `Option[T]` into a [`Result[T]`], mapping [`Some(v)`] to [`Ok(v)`] and [`None`] to [`Err(errFn())`].
func (Option[T]) OrElse ¶
OrElse returns the option if it contains a value, otherwise calls `f` and returns the result.
func (*Option[T]) Replace ¶
Replace replaces the actual value in the option by the value given in parameter, returning the old value if present, leaving a [`Some`] in its place without deinitializing either one.
func (Option[T]) Take ¶ added in v0.7.0
Take takes the value out of the option, leaving a [`None`] in its place.
func (*Option[T]) UnmarshalJSON ¶ added in v0.6.0
func (Option[T]) Unwrap ¶
func (o Option[T]) Unwrap() T
Unwrap returns the contained value. Panics if the value is none.
func (Option[T]) UnwrapOr ¶
func (o Option[T]) UnwrapOr(defaultSome T) T
UnwrapOr returns the contained value or a provided default.
func (Option[T]) UnwrapOrElse ¶
func (o Option[T]) UnwrapOrElse(defaultSome func() T) T
UnwrapOrElse returns the contained value or computes it from a closure.
func (Option[T]) UnwrapUnchecked ¶
func (o Option[T]) UnwrapUnchecked() T
UnwrapUnchecked returns the contained value.
func (Option[T]) XAnd ¶ added in v0.7.0
XAnd returns [`None`] if the option is [`None`], otherwise returns `optb`.
func (Option[T]) XAndThen ¶ added in v0.7.0
XAndThen returns [`None`] if the option is [`None`], otherwise calls `f` with the
func (Option[T]) XEnumOkOr ¶ added in v1.0.0
func (o Option[T]) XEnumOkOr(err any) EnumResult[any, any]
XEnumOkOr transforms the `Option[T]` into a [`EnumResult[any,any]`], mapping [`Some(v)`] to [`EnumOk(v)`] and [`None`] to [`EnumErr(err)`].
func (Option[T]) XEnumOkOrElse ¶ added in v1.0.0
func (o Option[T]) XEnumOkOrElse(errFn func() any) EnumResult[any, any]
XEnumOkOrElse transforms the `Option[T]` into a [`EnumResult[any,any]`], mapping [`Some(v)`] to [`EnumOk(v)`] and [`None`] to [`EnumErr(errFn())`].
func (Option[T]) XMap ¶ added in v0.7.0
XMap maps an `Option[T]` to `Option[any]` by applying a function to a contained value.
func (Option[T]) XMapOr ¶ added in v0.7.0
XMapOr returns the provided default value (if none), or applies a function to the contained value (if any).
func (Option[T]) XMapOrElse ¶ added in v0.7.0
XMapOrElse computes a default function value (if none), or applies a different function to the contained value (if any).
func (Option[T]) XOkOr ¶ added in v1.0.0
XOkOr transforms the `Option[T]` into a [`Result[any]`], mapping [`Some(v)`] to [`Ok(v)`] and [`None`] to [`Err(err)`].
type PureInteger ¶ added in v1.1.2
type RWMutex ¶ added in v1.2.2
type RWMutex[T any] struct { // contains filtered or unexported fields }
RWMutex is a wrapper of `sync.RWMutex` that holds a value.
func NewRWMutex ¶ added in v1.2.2
NewRWMutex returns a new *RWMutex.
func (*RWMutex[T]) Lock ¶ added in v1.2.2
func (m *RWMutex[T]) Lock() T
Lock locks rw for writing. If the lock is already locked for reading or writing, Lock blocks until the lock is available.
func (*RWMutex[T]) RLock ¶ added in v1.2.2
func (m *RWMutex[T]) RLock() T
RLock locks rw for reading.
It should not be used for recursive read locking; a blocked Lock call excludes new readers from acquiring the lock. See the documentation on the RWMutex type.
func (*RWMutex[T]) RUnlock ¶ added in v1.2.2
func (m *RWMutex[T]) RUnlock(newData ...T)
RUnlock undoes a single RLock call; it does not affect other simultaneous readers. It is a run-time error if rw is not locked for reading on entry to RUnlock.
func (*RWMutex[T]) TryLock ¶ added in v1.2.2
TryLock tries to lock rw for writing and reports whether it succeeded.
Note that while correct uses of TryLock do exist, they are rare, and use of TryLock is often a sign of a deeper problem
func (*RWMutex[T]) TryRLock ¶ added in v1.2.2
TryRLock tries to lock rw for reading and reports whether it succeeded.
Note that while correct uses of TryRLock do exist, they are rare, and use of TryRLock is often a sign of a deeper problem in a particular use of mutexes.
func (*RWMutex[T]) Unlock ¶ added in v1.2.2
func (m *RWMutex[T]) Unlock(newData ...T)
Unlock unlocks rw for writing. It is a run-time error if rw is not locked for writing on entry to Unlock.
As with Mutexes, a locked RWMutex is not associated with a particular goroutine. One goroutine may RLock (Lock) a RWMutex and then arrange for another goroutine to RUnlock (Unlock) it.
type Result ¶
type Result[T any] struct { // contains filtered or unexported fields }
Result can be used to improve `func()(T,error)`, represents either success (T) or failure (error).
func (Result[T]) AndThen ¶
AndThen calls op if the result is Ok, otherwise returns the error of self. This function can be used for control flow based on Result values.
func (Result[T]) ContainsErr ¶
ContainsErr returns true if the result is an error containing the given value.
func (Result[T]) EnumResult ¶ added in v0.7.0
func (r Result[T]) EnumResult() EnumResult[T, error]
EnumResult returns the inner EnumResult[T, error].
func (Result[T]) Expect ¶
Expect returns the contained Ok value. Panics if the value is an error, with a panic message including the passed message, and the content of the error.
func (Result[T]) ExpectErr ¶
ExpectErr returns the contained error. Panics if the value is not an error, with a panic message including the passed message, and the content of the [`Ok`].
func (Result[T]) Inspect ¶
Inspect calls the provided closure with a reference to the contained value (if no error).
func (Result[T]) InspectErr ¶
InspectErr calls the provided closure with a reference to the contained error (if error).
func (Result[T]) IsErrAnd ¶
IsErrAnd returns true if the result is error and the value inside it matches a predicate.
func (Result[T]) IsOkAnd ¶
IsOkAnd returns true if the result is Ok and the value inside it matches a predicate.
func (Result[T]) Map ¶
Map maps a Result[T] to Result[T] by applying a function to a contained Ok value, leaving an error untouched. This function can be used to compose the results of two functions.
func (Result[T]) MapErr ¶
MapErr maps a Result[T] to Result[T] by applying a function to a contained error, leaving an Ok value untouched. This function can be used to pass through a successful result while handling an error.
func (Result[T]) MapOr ¶
func (r Result[T]) MapOr(defaultOk T, f func(T) T) T
MapOr returns the provided default (if error), or applies a function to the contained value (if no error), Arguments passed to map_or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use MapOrElse, which is lazily evaluated.
func (Result[T]) MapOrElse ¶
MapOrElse maps a Result[T] to T by applying fallback function default to a contained error, or function f to a contained Ok value. This function can be used to unpack a successful result while handling an error.
func (Result[T]) MarshalJSON ¶ added in v0.6.0
func (Result[T]) Or ¶
Or returns res if the result is Err, otherwise returns the Ok value of r. Arguments passed to or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use OrElse, which is lazily evaluated.
func (Result[T]) OrElse ¶
OrElse calls op if the result is Err, otherwise returns the Ok value of self. This function can be used for control flow based on result values.
func (*Result[T]) UnmarshalJSON ¶ added in v0.6.0
func (Result[T]) Unwrap ¶
func (r Result[T]) Unwrap() T
Unwrap returns the contained Ok value. Because this function may panic, its use is generally discouraged. Instead, prefer to use pattern matching and handle the error case explicitly, or call UnwrapOr or UnwrapOrElse.
func (Result[T]) UnwrapErr ¶
UnwrapErr returns the contained error. Panics if the value is not an error, with a custom panic message provided by the [`Ok`]'s value.
func (Result[T]) UnwrapOr ¶
func (r Result[T]) UnwrapOr(defaultOk T) T
UnwrapOr returns the contained Ok value or a provided default. Arguments passed to UnwrapOr are eagerly evaluated; if you are passing the result of a function call, it is recommended to use UnwrapOrElse, which is lazily evaluated.
func (Result[T]) UnwrapOrElse ¶
UnwrapOrElse returns the contained Ok value or computes it from a closure.
func (Result[T]) XAnd ¶ added in v0.7.0
XAnd returns res if the result is Ok, otherwise returns the error of self.
func (Result[T]) XAndThen ¶ added in v0.7.0
XAndThen calls op if the result is Ok, otherwise returns the error of self. This function can be used for control flow based on Result values.
func (Result[T]) XMap ¶ added in v0.7.0
XMap maps a Result[T] to Result[any] by applying a function to a contained Ok value, leaving an error untouched. This function can be used to compose the results of two functions.
func (Result[T]) XMapOr ¶ added in v0.7.0
XMapOr returns the provided default (if error), or applies a function to the contained value (if no error), Arguments passed to map_or are eagerly evaluated; if you are passing the result of a function call, it is recommended to use MapOrElse, which is lazily evaluated.
func (Result[T]) XMapOrElse ¶ added in v0.7.0
XMapOrElse maps a Result[T] to `any` by applying fallback function default to a contained error, or function f to a contained Ok value. This function can be used to unpack a successful result while handling an error.
type SigCtrlFlow ¶ added in v0.7.0
SigCtrlFlow is a placeholder for single type control flow statements.
func SigBreak ¶ added in v0.7.0
func SigBreak[T any](b T) SigCtrlFlow[T]
SigBreak returns a `SigCtrlFlow[T]` that tells the operation to break.
func SigContinue ¶ added in v0.7.0
func SigContinue[T any](c T) SigCtrlFlow[T]
SigContinue returns a `SigCtrlFlow[T]` that tells the operation to continue.