Documentation ¶
Index ¶
- type Option
- func FirstOf[T any](options ...Option[T]) Option[T]
- func FlatMap[A any, B any](a Option[A], fn func(A) Option[B]) Option[B]
- func LastOf[T any](options ...Option[T]) Option[T]
- func Map[A any, B any](a Option[A], fn func(A) B) Option[B]
- func None[T any]() Option[T]
- func OfFn[T any](v T, fn func(v T) bool) Option[T]
- func OfMap[K comparable, V any](v map[K]V) Option[map[K]V]
- func OfOk[T any](v T, ok bool) Option[T]
- func OfOptions[T any](elems ...Option[T]) Option[[]T]
- func OfPtr[T any](v *T) Option[T]
- func OfSlice[T any](v []T) Option[[]T]
- func OfZero[T comparable](v T) Option[T]
- func Run[T any](opt Option[T], fn func(T) Option[T]) Option[T]
- func Some[T any](v T) Option[T]
- func (t Option[T]) Defined() bool
- func (t Option[T]) Empty() bool
- func (t Option[T]) Get() T
- func (t Option[T]) MarshalJSON() ([]byte, error)
- func (t Option[T]) MarshalYAML() (interface{}, error)
- func (t Option[T]) OrElse(v T) T
- func (t Option[T]) OrNil() *T
- func (t Option[T]) Run(fn func(T) Option[T]) Option[T]
- func (t Option[T]) String() string
- func (t *Option[T]) UnmarshalJSON(data []byte) error
- func (t *Option[T]) UnmarshalYAML(unmarshal func(interface{}) error) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option[T any] struct { // contains filtered or unexported fields }
Option[T] is a container for zero or one element of a given type.
func OfFn ¶
OfFn[T] creates a Option[T] that may or may not have a value. If fn(V) is false, the returned Option[T] is empty (equivalent to None[T]()), If fn(V) is true, the returned Option[T] will contain the value v (equivalent to Some[T](v)).
func OfMap ¶
func OfMap[K comparable, V any](v map[K]V) Option[map[K]V]
OfMap[map[K]V] creates a Option[map[K]V] that may or may not have a value.
If len(map[K]V) > 0 the returned Option[map[K]V] will contain the value v, equivalent to Some[map[K]V](v)
Otherwise the returned Option[map[K]V] is empty, equivalent to None[map[K]V]().
func OfOk ¶
OfOk[T] creates a Option[T] that may or may not have a value. If ok is false, the returned Option[T] is empty (equivalent to None[T]()), If ok is true, the returned Option[T] will contain the value v (equivalent to Some[T](v)).
func OfPtr ¶
OfPtr[T] creates a Option[T] that may or may not have a value. If *T is nil the returned Option[T] is empty (equivalent to None[T]()), If *T is non-nil returned Option[T] will contain a value (equivalent to Some[T](v)).
func OfSlice ¶
OfSlice[[]T] creates a Option[[]T] that may or may not have a value.
If len([]T) > 0 the returned Option[[]T] will contain the value v (equivalent to Some[[]T](v))
Otherwise the returned Option[[]T] is empty, equivalent to None[[]T]().
func OfZero ¶
func OfZero[T comparable](v T) Option[T]
OfZero[T] creates a Option[T] that may or may not have a value. If T is the zero value, the returned Option[T] is empty (equivalent to None[T]()), If T is not a zero, the returned Option[T] will contain a value (equivalent to Some[T](v)).
func (Option[T]) Defined ¶
Defined returns true if the contained value is not empty, false otherwise
Inverse of Empty()
func (Option[T]) Empty ¶
Empty returns true if the contained value is empty, false otherwise
Inverse of Defined()
func (Option[T]) Get ¶
func (t Option[T]) Get() T
Get returns the contained value.
NOTE: If called and Empty() is true, the value will be the type's zero value.
func (Option[T]) MarshalJSON ¶
MarshalJSON implements the encoding/json#Marshaler interface
func (Option[T]) MarshalYAML ¶
MarshalYAML implements the gopkg.in/yaml.v2#Marshal interface
func (Option[T]) OrElse ¶
func (t Option[T]) OrElse(v T) T
OrElse returns the contained value if Defined() is true or returns the provided argument.
func (Option[T]) OrNil ¶ added in v1.0.32
func (t Option[T]) OrNil() *T
OrOrNil returns a pointer to the value or nil.
func (*Option[T]) UnmarshalJSON ¶
UnmarshalJSON implements the encoding/json#Unmarshaler interface
func (*Option[T]) UnmarshalYAML ¶
UnmarshalYAML implements the gopkg.in/yaml.v2#Unmarshal interface