null

package module
v1.0.26 Latest Latest
Warning

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

Go to latest
Published: Nov 15, 2024 License: BSD-2-Clause Imports: 17 Imported by: 0

README

null GoDoc CircleCI

import "gopkg.in/guregu/null.v4"

null is a library with reasonable options for dealing with nullable SQL and JSON values

There are two packages: null and its subpackage zero.

Types in null will only be considered null on null input, and will JSON encode to null. If you need zero and null be considered separate values, use these.

Types in zero are treated like zero values in Go: blank string input will produce a null zero.String, and null Strings will JSON encode to "". Zero values of these types will be considered null to SQL. If you need zero and null treated the same, use these.

All types implement sql.Scanner and driver.Valuer, so you can use this library in place of sql.NullXXX. All types also implement: encoding.TextMarshaler, encoding.TextUnmarshaler, json.Marshaler, and json.Unmarshaler. A null object's MarshalText will return a blank string.

null package

import "gopkg.in/guregu/null.v4"

null.String

Nullable string.

Marshals to JSON null if SQL source data is null. Zero (blank) input will not produce a null String.

null.Int

Nullable int64.

Marshals to JSON null if SQL source data is null. Zero input will not produce a null Int.

null.Float

Nullable float64.

Marshals to JSON null if SQL source data is null. Zero input will not produce a null Float.

null.Bool

Nullable bool.

Marshals to JSON null if SQL source data is null. False input will not produce a null Bool.

null.Time

Marshals to JSON null if SQL source data is null. Zero input will not produce a null Time.

zero package

import "gopkg.in/guregu/null.v4/zero"

zero.String

Nullable string.

Will marshal to a blank string if null. Blank string input produces a null String. Null values and zero values are considered equivalent.

zero.Int

Nullable int64.

Will marshal to 0 if null. 0 produces a null Int. Null values and zero values are considered equivalent.

zero.Float

Nullable float64.

Will marshal to 0.0 if null. 0.0 produces a null Float. Null values and zero values are considered equivalent.

zero.Bool

Nullable bool.

Will marshal to false if null. false produces a null Float. Null values and zero values are considered equivalent.

zero.Time

Will marshal to the zero time if null. Uses time.Time's marshaler.

Can you add support for other types?

This package is intentionally limited in scope. It will only support the types that driver.Value supports. Feel free to fork this and add more types if you want.

Can you add a feature that ____?

This package isn't intended to be a catch-all data-wrangling package. It is essentially finished. If you have an idea for a new feature, feel free to open an issue to talk about it or fork this package, but don't expect this to do everything.

Package history

As of v4, unmarshaling from JSON sql.NullXXX JSON objects (ex. {"Int64": 123, "Valid": true}) is no longer supported. It's unlikely many people used this, but if you need it, use v3.

Bugs

json's ",omitempty" struct tag does not work correctly right now. It will never omit a null or empty String. This might be fixed eventually.

License

BSD

Documentation

Overview

Package null contains SQL types that consider zero input and null input as separate values, with convenient support for JSON and text marshaling. Types in this package will always encode to their null value if null. Use the zero subpackage if you want zero values and null to be treated the same.

Package null contains SQL types that consider zero input and null input as separate values, with convenient support for JSON and text marshaling. Types in this package will always encode to their null value if null. Use the zero subpackage if you want zero values and null to be treated the same.

Package null contains SQL types that consider zero input and null input as separate values, with convenient support for JSON and text marshaling. Types in this package will always encode to their null value if null. Use the zero subpackage if you want zero values and null to be treated the same.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsArrayOfVals added in v1.0.15

func IsArrayOfVals(data []byte) (bool, string)

Types

type Bool

type Bool struct {
	sql.NullBool
}

Bool is a nullable bool. It does not consider false values to be null. It will decode to null, not false, if null.

func BoolFrom

func BoolFrom(b bool) Bool

BoolFrom creates a new Bool that will always be valid.

func BoolFromPtr

func BoolFromPtr(b *bool) Bool

BoolFromPtr creates a new Bool that will be null if f is nil.

func NewBool

func NewBool(b bool, valid bool) Bool

NewBool creates a new Bool

func (Bool) Equal

func (b Bool) Equal(other Bool) bool

Equal returns true if both booleans have the same value or are both null.

func (Bool) IsZero

func (b Bool) IsZero() bool

IsZero returns true for invalid Bools, for future omitempty support (Go 1.4?) A non-null Bool with a 0 value will not be considered zero.

func (Bool) MarshalJSON

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

MarshalJSON implements json.Marshaler. It will encode null if this Bool is null.

func (Bool) MarshalText

func (b Bool) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It will encode a blank string if this Bool is null.

func (Bool) Ptr

func (b Bool) Ptr() *bool

Ptr returns a pointer to this Bool's value, or a nil pointer if this Bool is null.

func (*Bool) Set

func (b *Bool) Set(v bool)

Set changes this Bool's value and also sets it to be non-null.

func (*Bool) UnmarshalJSON

func (b *Bool) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports number and null input. 0 will not be considered a null Bool.

func (*Bool) UnmarshalText

func (b *Bool) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It will unmarshal to a null Bool if the input is blank. It will return an error if the input is not an integer, blank, or "null".

func (Bool) ValueOrZero

func (b Bool) ValueOrZero() bool

ValueOrZero returns the inner value if valid, otherwise false.

type Date

type Date struct {
	sql.NullTime
}

Date is a nullable Date. It supports SQL and JSON serialization. It will marshal to null if null.

func DateFrom added in v1.0.2

func DateFrom(t time.Time) Date

DateFrom creates a new Time that will always be valid.

func DateSkipErrFrom added in v1.0.20

func DateSkipErrFrom(t time.Time) Date

DateFrom creates a new Time that will always be valid.

func NewDate added in v1.0.2

func NewDate(t time.Time, valid bool) Date

NewDate creates a new Date.

func NewDateSkipErr added in v1.0.20

func NewDateSkipErr(t time.Time, valid bool) Date

NewDate creates a new Date.

func (*Date) GetYear

func (t *Date) GetYear() sql.NullInt64

func (*Date) String added in v1.0.4

func (t *Date) String() string

func (*Date) UnmarshalText

func (t *Date) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It has backwards compatibility with v3 in that the string "null" is considered equivalent to an empty string and unmarshaling will succeed. This may be removed in a future version.

type DateSkipErr added in v1.0.20

type DateSkipErr struct {
	sql.NullTime
}

Date is a nullable Date. It supports SQL and JSON serialization. It will marshal to null if null.

func (*DateSkipErr) GetYear added in v1.0.20

func (t *DateSkipErr) GetYear() sql.NullInt64

func (*DateSkipErr) String added in v1.0.20

func (t *DateSkipErr) String() string

func (*DateSkipErr) UnmarshalText added in v1.0.20

func (t *DateSkipErr) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It has backwards compatibility with v3 in that the string "null" is considered equivalent to an empty string and unmarshaling will succeed. This may be removed in a future version.

type Date_v2 added in v1.0.5

type Date_v2 struct {
	sql.NullTime
}

Date is a nullable Date. It supports SQL and JSON serialization. It will marshal to null if null.

func Date_v2From added in v1.0.5

func Date_v2From(t time.Time) Date_v2

DateFrom creates a new Time that will always be valid.

func NewDate_v2 added in v1.0.5

func NewDate_v2(t time.Time, valid bool) Date_v2

NewDate creates a new Date.

func (*Date_v2) GetYear added in v1.0.5

func (t *Date_v2) GetYear() sql.NullInt64

func (*Date_v2) String added in v1.0.5

func (t *Date_v2) String() string

func (*Date_v2) UnmarshalText added in v1.0.5

func (t *Date_v2) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It has backwards compatibility with v3 in that the string "null" is considered equivalent to an empty string and unmarshaling will succeed. This may be removed in a future version.

type Float

type Float struct {
	sql.NullFloat64
}

Float is a nullable float64. It does not consider zero values to be null. It will decode to null, not zero, if null.

func FloatFrom

func FloatFrom(f float64) Float

FloatFrom creates a new Float that will always be valid.

func FloatFromPtr

func FloatFromPtr(f *float64) Float

FloatFromPtr creates a new Float that be null if f is nil.

func FloatFromStr added in v1.0.3

func FloatFromStr(str string) (Float, error)

func NewFloat

func NewFloat(f float64, valid bool) Float

NewFloat creates a new Float

func (Float) Equal

func (f Float) Equal(other Float) bool

Equal returns true if both floats have the same value or are both null. Warning: calculations using floating point numbers can result in different ways the numbers are stored in memory. Therefore, this function is not suitable to compare the result of a calculation. Use this method only to check if the value has changed in comparison to some previous value.

func (Float) IsZero

func (f Float) IsZero() bool

IsZero returns true for invalid Floats, for future omitempty support (Go 1.4?) A non-null Float with a 0 value will not be considered zero.

func (Float) MarshalJSON

func (f Float) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler. It will encode null if this Float is null.

func (Float) MarshalText

func (f Float) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It will encode a blank string if this Float is null.

func (Float) Ptr

func (f Float) Ptr() *float64

Ptr returns a pointer to this Float's value, or a nil pointer if this Float is null.

func (*Float) Set

func (f *Float) Set(n float64)

Set changes this Float's value and also sets it to be non-null.

func (*Float) UnmarshalJSON

func (f *Float) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports number and null input. 0 will not be considered a null Float.

func (*Float) UnmarshalText

func (f *Float) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It will unmarshal to a null Float if the input is blank. It will return an error if the input is not an integer, blank, or "null".

func (Float) ValueOrZero

func (f Float) ValueOrZero() float64

ValueOrZero returns the inner value if valid, otherwise zero.

type Int

type Int struct {
	sql.NullInt64
}

Int is an nullable int64. It does not consider zero values to be null. It will decode to null, not zero, if null.

func IntFrom

func IntFrom(i int64) Int

IntFrom creates a new Int that will always be valid.

func IntFromPtr

func IntFromPtr(i *int64) Int

IntFromPtr creates a new Int that be null if i is nil.

func IntFromStr added in v1.0.3

func IntFromStr(str string) (Int, error)

func NewInt

func NewInt(i int64, valid bool) Int

NewInt creates a new Int

func (Int) Equal

func (i Int) Equal(other Int) bool

Equal returns true if both ints have the same value or are both null.

func (Int) IsZero

func (i Int) IsZero() bool

IsZero returns true for invalid Ints, for future omitempty support (Go 1.4?) A non-null Int with a 0 value will not be considered zero.

func (Int) MarshalJSON

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

MarshalJSON implements json.Marshaler. It will encode null if this Int is null.

func (Int) MarshalText

func (i Int) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It will encode a blank string if this Int is null.

func (Int) Ptr

func (i Int) Ptr() *int64

Ptr returns a pointer to this Int's value, or a nil pointer if this Int is null.

func (*Int) Set

func (i *Int) Set(n int64)

Set changes this Int's value and also sets it to be non-null.

func (*Int) UnmarshalJSON

func (i *Int) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports number, string, and null input. 0 will not be considered a null Int.

func (*Int) UnmarshalText

func (i *Int) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It will unmarshal to a null Int if the input is blank. It will return an error if the input is not an integer, blank, or "null".

func (Int) ValueOrZero

func (i Int) ValueOrZero() int64

ValueOrZero returns the inner value if valid, otherwise zero.

type String

type String struct {
	sql.NullString
}

String is a nullable string. It supports SQL and JSON serialization. It will marshal to null if null. Blank string input will be considered null.

func NewString

func NewString(s string, valid bool) String

NewString creates a new String

func StringFrom

func StringFrom(s string) String

StringFrom creates a new String that will never be blank.

func StringFromPtr

func StringFromPtr(s *string) String

StringFromPtr creates a new String that be null if s is nil.

func (String) Equal

func (s String) Equal(other String) bool

Equal returns true if both strings have the same value or are both null.

func (String) IsZero

func (s String) IsZero() bool

IsZero returns true for null strings, for potential future omitempty support.

func (String) MarshalJSON

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

MarshalJSON implements json.Marshaler. It will encode null if this String is null.

func (String) MarshalText

func (s String) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It will encode a blank string when this String is null.

func (String) Ptr

func (s String) Ptr() *string

Ptr returns a pointer to this String's value, or a nil pointer if this String is null.

func (*String) Scan added in v1.0.10

func (s *String) Scan(value interface{}) error

Scan implements the Scanner interface for NullString

func (*String) Set

func (s *String) Set(v string)

Set changes this String's value and also sets it to be non-null.

func (*String) UnmarshalJSON

func (s *String) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports string and null input. Blank string input does not produce a null String.

func (*String) UnmarshalText

func (s *String) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It will unmarshal to a null String if the input is a blank string.

func (String) ValueOrZero

func (s String) ValueOrZero() string

ValueOrZero returns the inner value if valid, otherwise zero.

type StringUnescapeHtml added in v1.0.6

type StringUnescapeHtml struct {
	sql.NullString
}

Unmarshall html codes to cyrilic str e.g. КИРИЛЛ -> КИРИЛЛ String is a nullable string. It supports SQL and JSON serialization. It will marshal to null if null. Blank string input will be considered null.

func NewStringUnescapeHtml added in v1.0.6

func NewStringUnescapeHtml(s string, valid bool) StringUnescapeHtml

NewString creates a new String

func StringUnescapeHtmlFrom added in v1.0.6

func StringUnescapeHtmlFrom(s string) StringUnescapeHtml

StringFrom creates a new String that will never be blank.

func StringUnescapeHtmlFromPtr added in v1.0.6

func StringUnescapeHtmlFromPtr(s *string) StringUnescapeHtml

StringFromPtr creates a new String that be null if s is nil.

func (StringUnescapeHtml) Equal added in v1.0.6

Equal returns true if both strings have the same value or are both null.

func (StringUnescapeHtml) IsZero added in v1.0.6

func (s StringUnescapeHtml) IsZero() bool

IsZero returns true for null strings, for potential future omitempty support.

func (StringUnescapeHtml) MarshalJSON added in v1.0.6

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

MarshalJSON implements json.Marshaler. It will encode null if this StringUnescapeHtml is null.

func (StringUnescapeHtml) MarshalText added in v1.0.6

func (s StringUnescapeHtml) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It will encode a blank string when this StringUnescapeHtml is null.

func (StringUnescapeHtml) Ptr added in v1.0.6

func (s StringUnescapeHtml) Ptr() *string

Ptr returns a pointer to this StringUnescapeHtml's value, or a nil pointer if this StringUnescapeHtml is null.

func (*StringUnescapeHtml) Set added in v1.0.6

func (s *StringUnescapeHtml) Set(v string)

Set changes this StringUnescapeHtml's value and also sets it to be non-null.

func (*StringUnescapeHtml) UnmarshalJSON added in v1.0.6

func (s *StringUnescapeHtml) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports StringUnescapeHtml and null input. Blank string input does not produce a null String.

func (*StringUnescapeHtml) UnmarshalText added in v1.0.6

func (s *StringUnescapeHtml) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It will unmarshal to a null String if the input is a blank string.

func (StringUnescapeHtml) ValueOrZero added in v1.0.6

func (s StringUnescapeHtml) ValueOrZero() string

ValueOrZero returns the inner value if valid, otherwise zero.

type String_win1251 added in v1.0.15

type String_win1251 struct {
	sql.NullString
}

String is a nullable string. It supports SQL and JSON serialization. It will marshal to null if null. Blank string input will be considered null.

func NewString_win1251 added in v1.0.15

func NewString_win1251(s string, valid bool) String_win1251

NewString creates a new String

func StringFromPtr_win1251 added in v1.0.15

func StringFromPtr_win1251(s *string) String_win1251

StringFromPtr creates a new String that be null if s is nil.

func String_win1251From added in v1.0.15

func String_win1251From(s string) String_win1251

StringFrom creates a new String that will never be blank.

func (String_win1251) Equal added in v1.0.15

func (s String_win1251) Equal(other String_win1251) bool

Equal returns true if both strings have the same value or are both null.

func (String_win1251) IsZero added in v1.0.15

func (s String_win1251) IsZero() bool

IsZero returns true for null strings, for potential future omitempty support.

func (String_win1251) MarshalJSON added in v1.0.15

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

MarshalJSON implements json.Marshaler. It will encode null if this String is null.

func (String_win1251) MarshalText added in v1.0.15

func (s String_win1251) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It will encode a blank string when this String is null.

func (String_win1251) Ptr added in v1.0.15

func (s String_win1251) Ptr() *string

Ptr returns a pointer to this String's value, or a nil pointer if this String is null.

func (*String_win1251) Scan added in v1.0.15

func (s *String_win1251) Scan(value interface{}) error

Scan implements the Scanner interface for NullString

func (*String_win1251) Set added in v1.0.15

func (s *String_win1251) Set(v string)

Set changes this String's value and also sets it to be non-null.

func (*String_win1251) UnmarshalJSON added in v1.0.15

func (s *String_win1251) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports string and null input. Blank string input does not produce a null String.

func (*String_win1251) UnmarshalText added in v1.0.15

func (s *String_win1251) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It will unmarshal to a null String if the input is a blank string.

func (String_win1251) ValueOrZero added in v1.0.15

func (s String_win1251) ValueOrZero() string

ValueOrZero returns the inner value if valid, otherwise zero.

type Time

type Time struct {
	sql.NullTime
}

Time is a nullable time.Time. It supports SQL and JSON serialization. It will marshal to null if null.

func NewTime

func NewTime(t time.Time, valid bool) Time

NewTime creates a new Time.

func NewTimeSkipErr added in v1.0.18

func NewTimeSkipErr(t time.Time, valid bool) Time

NewTime creates a new Time.

func TimeFrom

func TimeFrom(t time.Time) Time

TimeFrom creates a new Time that will always be valid.

func TimeFromPtr

func TimeFromPtr(t *time.Time) Time

TimeFromPtr creates a new Time that will be null if t is nil.

func TimeSkipErrFrom added in v1.0.18

func TimeSkipErrFrom(t time.Time) Time

TimeFrom creates a new Time that will always be valid.

func TimeSkipErrFromPtr added in v1.0.18

func TimeSkipErrFromPtr(t *time.Time) Time

TimeFromPtr creates a new Time that will be null if t is nil.

func (Time) Equal

func (t Time) Equal(other Time) bool

Equal returns true if both Time objects encode the same time or are both null. Two times can be equal even if they are in different locations. For example, 6:00 +0200 CEST and 4:00 UTC are Equal.

func (Time) ExactEqual

func (t Time) ExactEqual(other Time) bool

ExactEqual returns true if both Time objects are equal or both null. ExactEqual returns false for times that are in different locations or have a different monotonic clock reading.

func (Time) IsZero

func (t Time) IsZero() bool

IsZero returns true for invalid Times, hopefully for future omitempty support. A non-null Time with a zero value will not be considered zero.

func (Time) MarshalJSON

func (t Time) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler. It will encode null if this time is null.

func (Time) MarshalText

func (t Time) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It returns an empty string if invalid, otherwise time.Time's MarshalText.

func (Time) Ptr

func (t Time) Ptr() *time.Time

Ptr returns a pointer to this Time's value, or a nil pointer if this Time is null.

func (*Time) Set

func (t *Time) Set(v time.Time)

Set changes this Time's value and sets it to be non-null.

func (*Time) UnmarshalJSON

func (t *Time) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports string and null input.

func (*Time) UnmarshalText

func (t *Time) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It has backwards compatibility with v3 in that the string "null" is considered equivalent to an empty string and unmarshaling will succeed. This may be removed in a future version.

func (Time) Value

func (t Time) Value() (driver.Value, error)

Value implements the driver Valuer interface.

func (Time) ValueOrZero

func (t Time) ValueOrZero() time.Time

ValueOrZero returns the inner value if valid, otherwise zero.

type TimeKatalogrek added in v1.0.22

type TimeKatalogrek struct {
	sql.NullTime
}

Time is a nullable time.Time. It supports SQL and JSON serialization. It will marshal to null if null.

func NewTimeKatalogrek added in v1.0.22

func NewTimeKatalogrek(t time.Time, valid bool) TimeKatalogrek

NewTime creates a new Time.

func TimeKatalogrekFrom added in v1.0.22

func TimeKatalogrekFrom(t time.Time) TimeKatalogrek

TimeFrom creates a new Time that will always be valid.

func TimeKatalogrekFromPtr added in v1.0.22

func TimeKatalogrekFromPtr(t *time.Time) TimeKatalogrek

TimeFromPtr creates a new Time that will be null if t is nil.

func (TimeKatalogrek) Equal added in v1.0.22

func (t TimeKatalogrek) Equal(other Time) bool

Equal returns true if both Time objects encode the same time or are both null. Two times can be equal even if they are in different locations. For example, 6:00 +0200 CEST and 4:00 UTC are Equal.

func (TimeKatalogrek) ExactEqual added in v1.0.22

func (t TimeKatalogrek) ExactEqual(other Time) bool

ExactEqual returns true if both Time objects are equal or both null. ExactEqual returns false for times that are in different locations or have a different monotonic clock reading.

func (TimeKatalogrek) IsZero added in v1.0.22

func (t TimeKatalogrek) IsZero() bool

IsZero returns true for invalid Times, hopefully for future omitempty support. A non-null Time with a zero value will not be considered zero.

func (TimeKatalogrek) MarshalJSON added in v1.0.22

func (t TimeKatalogrek) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler. It will encode null if this time is null.

func (TimeKatalogrek) MarshalText added in v1.0.22

func (t TimeKatalogrek) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It returns an empty string if invalid, otherwise time.Time's MarshalText.

func (TimeKatalogrek) Ptr added in v1.0.22

func (t TimeKatalogrek) Ptr() *time.Time

Ptr returns a pointer to this Time's value, or a nil pointer if this Time is null.

func (*TimeKatalogrek) Set added in v1.0.22

func (t *TimeKatalogrek) Set(v time.Time)

Set changes this Time's value and sets it to be non-null.

func (*TimeKatalogrek) UnmarshalJSON added in v1.0.22

func (t *TimeKatalogrek) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports string and null input.

func (*TimeKatalogrek) UnmarshalText added in v1.0.22

func (t *TimeKatalogrek) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It has backwards compatibility with v3 in that the string "null" is considered equivalent to an empty string and unmarshaling will succeed. This may be removed in a future version.

func (TimeKatalogrek) Value added in v1.0.22

func (t TimeKatalogrek) Value() (driver.Value, error)

Value implements the driver Valuer interface.

func (TimeKatalogrek) ValueOrZero added in v1.0.22

func (t TimeKatalogrek) ValueOrZero() time.Time

ValueOrZero returns the inner value if valid, otherwise zero.

type TimeSkipErr added in v1.0.18

type TimeSkipErr struct {
	sql.NullTime
}

Time is a nullable time.Time. It supports SQL and JSON serialization. It will marshal to null if null.

func (TimeSkipErr) Equal added in v1.0.18

func (t TimeSkipErr) Equal(other Time) bool

Equal returns true if both Time objects encode the same time or are both null. Two times can be equal even if they are in different locations. For example, 6:00 +0200 CEST and 4:00 UTC are Equal.

func (TimeSkipErr) ExactEqual added in v1.0.18

func (t TimeSkipErr) ExactEqual(other Time) bool

ExactEqual returns true if both Time objects are equal or both null. ExactEqual returns false for times that are in different locations or have a different monotonic clock reading.

func (TimeSkipErr) IsZero added in v1.0.18

func (t TimeSkipErr) IsZero() bool

IsZero returns true for invalid Times, hopefully for future omitempty support. A non-null Time with a zero value will not be considered zero.

func (TimeSkipErr) MarshalJSON added in v1.0.18

func (t TimeSkipErr) MarshalJSON() ([]byte, error)

MarshalJSON implements json.Marshaler. It will encode null if this time is null.

func (TimeSkipErr) MarshalText added in v1.0.18

func (t TimeSkipErr) MarshalText() ([]byte, error)

MarshalText implements encoding.TextMarshaler. It returns an empty string if invalid, otherwise time.Time's MarshalText.

func (TimeSkipErr) Ptr added in v1.0.18

func (t TimeSkipErr) Ptr() *time.Time

Ptr returns a pointer to this Time's value, or a nil pointer if this Time is null.

func (*TimeSkipErr) Set added in v1.0.18

func (t *TimeSkipErr) Set(v time.Time)

Set changes this Time's value and sets it to be non-null.

func (*TimeSkipErr) UnmarshalJSON added in v1.0.18

func (t *TimeSkipErr) UnmarshalJSON(data []byte) error

UnmarshalJSON implements json.Unmarshaler. It supports string and null input.

func (*TimeSkipErr) UnmarshalText added in v1.0.18

func (t *TimeSkipErr) UnmarshalText(text []byte) error

UnmarshalText implements encoding.TextUnmarshaler. It has backwards compatibility with v3 in that the string "null" is considered equivalent to an empty string and unmarshaling will succeed. This may be removed in a future version.

func (TimeSkipErr) Value added in v1.0.18

func (t TimeSkipErr) Value() (driver.Value, error)

Value implements the driver Valuer interface.

func (TimeSkipErr) ValueOrZero added in v1.0.18

func (t TimeSkipErr) ValueOrZero() time.Time

ValueOrZero returns the inner value if valid, otherwise zero.

Directories

Path Synopsis
Package zero contains SQL types that consider zero input and null input to be equivalent with convenient support for JSON and text marshaling.
Package zero contains SQL types that consider zero input and null input to be equivalent with convenient support for JSON and text marshaling.

Jump to

Keyboard shortcuts

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