option

package
v3.4.0 Latest Latest
Warning

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

Go to latest
Published: Aug 6, 2024 License: ISC Imports: 2 Imported by: 81

Documentation

Overview

Package option provides the ability to create omittable primitives. This is accomplished by pointerrizing common primitive types so that they may assume a nil value, which is considered as omitted by encoding/json. To generate pointerrized primitives, there are helper functions NewT() for each option type.

Index

Constants

This section is empty.

Variables

View Source
var (
	True  = newBool(true)
	False = newBool(false)
)
View Source
var (
	// NullBool serializes to JSON null.
	NullBool     = &NullableBoolData{}
	NullableTrue = &NullableBoolData{
		Val:  true,
		Init: true,
	}
	NullableFalse = &NullableBoolData{
		Val:  false,
		Init: true,
	}
)
View Source
var NullInt = &NullableIntData{}

NullInt serializes to JSON null.

View Source
var NullString = &NullableStringData{}

NullString serializes to JSON null.

View Source
var NullUint = &NullableUintData{}

NullUint serializes to JSON null.

View Source
var ZeroFloat = NewFloat(0)

ZeroFloat is an Float with 0 as value.

View Source
var ZeroInt = NewInt(0)

ZeroInt is an Int with 0 as value.

View Source
var ZeroUint = NewUint(0)

ZeroUint is a Uint with 0 as value.

Functions

func PtrTo added in v3.4.0

func PtrTo[T any](v T) *T

PtrTo creates a pointer to the passed value. It is like Some, except it returns *T directly rather than Optional[T].

Types

type Bool

type Bool *bool

Bool is the option type for bool.

type Float

type Float *float64

Float is the option type for floating-point numbers (float64).

func NewFloat

func NewFloat(i float64) Float

NewFloat creates a new Float using the value of the passed float64.

type Int

type Int *int

Int is the option type for integers (int).

func NewInt

func NewInt(i int) Int

NewInt creates a new Int using the value of the passed int.

type NullableBool

type NullableBool = *NullableBoolData

NullableBool is the nullable type for bool.

type NullableBoolData

type NullableBoolData struct {
	Val  bool
	Init bool
}

func (NullableBoolData) MarshalJSON

func (b NullableBoolData) MarshalJSON() ([]byte, error)

func (*NullableBoolData) UnmarshalJSON

func (b *NullableBoolData) UnmarshalJSON(json []byte) (err error)

type NullableInt

type NullableInt = *NullableIntData

NullableInt is a nullable version of an integer (int).

func NewNullableInt

func NewNullableInt(v int) NullableInt

NewInt creates a new non-null NullableInt using the value of the passed int.

type NullableIntData

type NullableIntData struct {
	Val  int
	Init bool
}

func (NullableIntData) MarshalJSON

func (i NullableIntData) MarshalJSON() ([]byte, error)

func (*NullableIntData) UnmarshalJSON

func (i *NullableIntData) UnmarshalJSON(json []byte) error

type NullableString

type NullableString = *NullableStringData

NullableString is a nullable version of a string.

func NewNullableString

func NewNullableString(v string) NullableString

NewNullableString creates a new non-null NullableString with the value of the passed string.

type NullableStringData

type NullableStringData struct {
	Val  string
	Init bool
}

func (NullableStringData) MarshalJSON

func (s NullableStringData) MarshalJSON() ([]byte, error)

func (*NullableStringData) UnmarshalJSON

func (s *NullableStringData) UnmarshalJSON(b []byte) error

type NullableUint

type NullableUint = *NullableUintData

NullableUint is a nullable version of an unsigned integer (uint).

func NewNullableUint

func NewNullableUint(v uint) NullableUint

NewUint creates a new non-null NullableUint using the value of the passed uint.

type NullableUintData

type NullableUintData struct {
	Val  uint
	Init bool
}

func (NullableUintData) MarshalJSON

func (u NullableUintData) MarshalJSON() ([]byte, error)

func (*NullableUintData) UnmarshalJSON

func (u *NullableUintData) UnmarshalJSON(json []byte) error

type Optional added in v3.4.0

type Optional[T any] *T

Optional wraps a type to make it omittable.

func Some added in v3.4.0

func Some[T any](v T) Optional[T]

Some creates a new Optional with the value of the passed type.

type String

type String *string

String is the option type for strings.

func NewString

func NewString(s string) String

NewString creates a new String with the value of the passed string.

type Uint

type Uint *uint

Uint is the option type for unsigned integers (uint).

func NewUint

func NewUint(u uint) Uint

NewUint creates a new Uint using the value of the passed uint.

Jump to

Keyboard shortcuts

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