Documentation
¶
Overview ¶
Package opt provides types and functions for dealing with optional data.
Index ¶
- type Empty
- func EmptyFrom[T comparable](value T) Empty[T]
- func EmptyFromFunc[T comparable, U any](value *U, f func(U) T) Empty[T]
- func EmptyFromFuncPtr[T comparable, U any](value *U, f func(*U) T) Empty[T]
- func EmptyFromPtr[T comparable](value *T) Empty[T]
- func NewEmpty[T comparable](value T, valid bool) Empty[T]
- func (v Empty[T]) Get() (value T, ok bool)
- func (v Empty[T]) IsZero() bool
- func (v Empty[T]) MarshalJSON() ([]byte, error)
- func (v Empty[T]) Or(value T) T
- func (v *Empty[T]) Ptr() *T
- func (v *Empty[T]) Reset()
- func (v *Empty[T]) Scan(value any) error
- func (v *Empty[T]) Set(value T)
- func (v Empty[T]) ToSQL() sql.Null[T]
- func (v *Empty[T]) UnmarshalJSON(data []byte) error
- func (v Empty[T]) Value() (driver.Value, error)
- type IsZeroer
- type Null
- func (v Null[T]) Get() (value T, ok bool)
- func (v Null[T]) IsZero() bool
- func (v Null[T]) MarshalJSON() ([]byte, error)
- func (v Null[T]) Or(value T) T
- func (v *Null[T]) Ptr() *T
- func (v *Null[T]) Reset()
- func (v *Null[T]) Scan(value any) error
- func (v *Null[T]) Set(value T)
- func (v Null[T]) ToSQL() sql.Null[T]
- func (v *Null[T]) UnmarshalJSON(data []byte) error
- func (v Null[T]) Value() (driver.Value, error)
- type Undefined
- func NewUndefined[T any](value T, valid bool) Undefined[T]
- func UndefinedFrom[T any](value T) Undefined[T]
- func UndefinedFromFunc[T, U any](value *U, f func(U) T) Undefined[T]
- func UndefinedFromFuncPtr[T, U any](value *U, f func(*U) T) Undefined[T]
- func UndefinedFromPtr[T any](value *T) Undefined[T]
- func (v Undefined[T]) Get() (value T, ok bool)
- func (v Undefined[T]) IsZero() bool
- func (v Undefined[T]) MarshalJSON() ([]byte, error)
- func (v Undefined[T]) Or(value T) T
- func (v *Undefined[T]) Ptr() *T
- func (v *Undefined[T]) Reset()
- func (v *Undefined[T]) Scan(value any) error
- func (v *Undefined[T]) Set(value T)
- func (v Undefined[T]) ToSQL() sql.Null[T]
- func (v *Undefined[T]) UnmarshalJSON(data []byte) error
- func (v Undefined[T]) Value() (driver.Value, error)
- type Zero
- func (v Zero[T]) Get() (value T, ok bool)
- func (v Zero[T]) IsZero() bool
- func (v Zero[T]) MarshalJSON() ([]byte, error)
- func (v Zero[T]) Or(value T) T
- func (v *Zero[T]) Ptr() *T
- func (v *Zero[T]) Reset()
- func (v *Zero[T]) Scan(value any) error
- func (v *Zero[T]) Set(value T)
- func (v Zero[T]) ToSQL() sql.Null[T]
- func (v *Zero[T]) UnmarshalJSON(data []byte) error
- func (v Zero[T]) Value() (driver.Value, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Empty ¶ added in v0.4.0
type Empty[T comparable] struct { V T Valid bool }
Empty represents an optional value that becomes valid when it is assigned a value other than nil or zero. Value is considered zero if it is the zero value for type T.
func EmptyFrom ¶ added in v0.4.0
func EmptyFrom[T comparable](value T) Empty[T]
func EmptyFromFunc ¶ added in v0.4.0
func EmptyFromFunc[T comparable, U any](value *U, f func(U) T) Empty[T]
func EmptyFromFuncPtr ¶ added in v0.4.0
func EmptyFromFuncPtr[T comparable, U any](value *U, f func(*U) T) Empty[T]
func EmptyFromPtr ¶ added in v0.4.0
func EmptyFromPtr[T comparable](value *T) Empty[T]
func NewEmpty ¶ added in v0.4.0
func NewEmpty[T comparable](value T, valid bool) Empty[T]
func (Empty[T]) MarshalJSON ¶ added in v0.4.0
func (*Empty[T]) UnmarshalJSON ¶ added in v0.4.0
type IsZeroer ¶ added in v0.4.0
type IsZeroer interface {
IsZero() bool
}
IsZeroer represents types that can report whether their value is zero.
type Null ¶
Null represents an optional value that becomes valid when it is assigned a value other than nil.
func NullFromFunc ¶
func NullFromFuncPtr ¶
func NullFromPtr ¶
func (Null[T]) MarshalJSON ¶
func (*Null[T]) UnmarshalJSON ¶
type Undefined ¶
Undefined represents an optional value that becomes valid when it is assigned any value.
func NewUndefined ¶
func UndefinedFrom ¶
func UndefinedFromFunc ¶
func UndefinedFromFuncPtr ¶
func UndefinedFromPtr ¶
func (Undefined[T]) MarshalJSON ¶
func (*Undefined[T]) UnmarshalJSON ¶
type Zero ¶
Zero represents an optional value that becomes valid when it is assigned a value other than nil or zero. Value is considered zero if IsZero method of type T returns true for the value.