bsonoptions

package
v1.4.1 Latest Latest
Warning

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

Go to latest
Published: Sep 1, 2020 License: Apache-2.0 Imports: 0 Imported by: 35

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ByteSliceCodecOptions added in v1.3.0

type ByteSliceCodecOptions struct {
	EncodeNilAsEmpty *bool // Specifies if a nil byte slice should encode as an empty binary instead of null. Defaults to false.
}

ByteSliceCodecOptions represents all possible options for byte slice encoding and decoding.

func ByteSliceCodec added in v1.3.0

func ByteSliceCodec() *ByteSliceCodecOptions

ByteSliceCodec creates a new *ByteSliceCodecOptions

func MergeByteSliceCodecOptions added in v1.3.0

func MergeByteSliceCodecOptions(opts ...*ByteSliceCodecOptions) *ByteSliceCodecOptions

MergeByteSliceCodecOptions combines the given *ByteSliceCodecOptions into a single *ByteSliceCodecOptions in a last one wins fashion.

func (*ByteSliceCodecOptions) SetEncodeNilAsEmpty added in v1.3.0

func (bs *ByteSliceCodecOptions) SetEncodeNilAsEmpty(b bool) *ByteSliceCodecOptions

SetEncodeNilAsEmpty specifies if a nil byte slice should encode as an empty binary instead of null. Defaults to false.

type EmptyInterfaceCodecOptions added in v1.3.0

type EmptyInterfaceCodecOptions struct {
	DecodeBinaryAsSlice *bool // Specifies if Old and Generic type binarys should default to []slice instead of primitive.Binary. Defaults to false.
}

EmptyInterfaceCodecOptions represents all possible options for interface{} encoding and decoding.

func EmptyInterfaceCodec added in v1.3.0

func EmptyInterfaceCodec() *EmptyInterfaceCodecOptions

EmptyInterfaceCodec creates a new *EmptyInterfaceCodecOptions

func MergeEmptyInterfaceCodecOptions added in v1.3.0

func MergeEmptyInterfaceCodecOptions(opts ...*EmptyInterfaceCodecOptions) *EmptyInterfaceCodecOptions

MergeEmptyInterfaceCodecOptions combines the given *EmptyInterfaceCodecOptions into a single *EmptyInterfaceCodecOptions in a last one wins fashion.

func (*EmptyInterfaceCodecOptions) SetDecodeBinaryAsSlice added in v1.3.0

func (e *EmptyInterfaceCodecOptions) SetDecodeBinaryAsSlice(b bool) *EmptyInterfaceCodecOptions

SetDecodeBinaryAsSlice specifies if Old and Generic type binarys should default to []slice instead of primitive.Binary. Defaults to false.

type MapCodecOptions

type MapCodecOptions struct {
	DecodeZerosMap   *bool // Specifies if the map should be zeroed before decoding into it. Defaults to false.
	EncodeNilAsEmpty *bool // Specifies if a nil map should encode as an empty document instead of null. Defaults to false.
	// Specifies how keys should be handled. If false, the behavior matches encoding/json, where the encoding key type must
	// either be a string, an integer type, or implement bsoncodec.KeyMarshaler and the decoding key type must either be a
	// string, an integer type, or implement bsoncodec.KeyUnmarshaler. If true, keys are encoded with fmt.Sprint() and the
	// encoding key type must be a string, an integer type, or a float. If true, the use of Stringer will override
	// TextMarshaler/TextUnmarshaler. Defaults to false.
	EncodeKeysWithStringer *bool
}

MapCodecOptions represents all possible options for map encoding and decoding.

func MapCodec

func MapCodec() *MapCodecOptions

MapCodec creates a new *MapCodecOptions

func MergeMapCodecOptions

func MergeMapCodecOptions(opts ...*MapCodecOptions) *MapCodecOptions

MergeMapCodecOptions combines the given *MapCodecOptions into a single *MapCodecOptions in a last one wins fashion.

func (*MapCodecOptions) SetDecodeZerosMap

func (t *MapCodecOptions) SetDecodeZerosMap(b bool) *MapCodecOptions

SetDecodeZerosMap specifies if the map should be zeroed before decoding into it. Defaults to false.

func (*MapCodecOptions) SetEncodeKeysWithStringer added in v1.4.0

func (t *MapCodecOptions) SetEncodeKeysWithStringer(b bool) *MapCodecOptions

SetEncodeKeysWithStringer specifies how keys should be handled. If false, the behavior matches encoding/json, where the encoding key type must either be a string, an integer type, or implement bsoncodec.KeyMarshaler and the decoding key type must either be a string, an integer type, or implement bsoncodec.KeyUnmarshaler. If true, keys are encoded with fmt.Sprint() and the encoding key type must be a string, an integer type, or a float. If true, the use of Stringer will override TextMarshaler/TextUnmarshaler. Defaults to false.

func (*MapCodecOptions) SetEncodeNilAsEmpty added in v1.3.0

func (t *MapCodecOptions) SetEncodeNilAsEmpty(b bool) *MapCodecOptions

SetEncodeNilAsEmpty specifies if a nil map should encode as an empty document instead of null. Defaults to false.

type SliceCodecOptions added in v1.3.0

type SliceCodecOptions struct {
	EncodeNilAsEmpty *bool // Specifies if a nil slice should encode as an empty array instead of null. Defaults to false.
}

SliceCodecOptions represents all possible options for slice encoding and decoding.

func MergeSliceCodecOptions added in v1.3.0

func MergeSliceCodecOptions(opts ...*SliceCodecOptions) *SliceCodecOptions

MergeSliceCodecOptions combines the given *SliceCodecOptions into a single *SliceCodecOptions in a last one wins fashion.

func SliceCodec added in v1.3.0

func SliceCodec() *SliceCodecOptions

SliceCodec creates a new *SliceCodecOptions

func (*SliceCodecOptions) SetEncodeNilAsEmpty added in v1.3.0

func (s *SliceCodecOptions) SetEncodeNilAsEmpty(b bool) *SliceCodecOptions

SetEncodeNilAsEmpty specifies if a nil slice should encode as an empty array instead of null. Defaults to false.

type StringCodecOptions

type StringCodecOptions struct {
	DecodeObjectIDAsHex *bool // Specifies if we should decode ObjectID as the hex value. Defaults to true.
}

StringCodecOptions represents all possible options for string encoding and decoding.

func MergeStringCodecOptions

func MergeStringCodecOptions(opts ...*StringCodecOptions) *StringCodecOptions

MergeStringCodecOptions combines the given *StringCodecOptions into a single *StringCodecOptions in a last one wins fashion.

func StringCodec

func StringCodec() *StringCodecOptions

StringCodec creates a new *StringCodecOptions

func (*StringCodecOptions) SetDecodeObjectIDAsHex

func (t *StringCodecOptions) SetDecodeObjectIDAsHex(b bool) *StringCodecOptions

SetDecodeObjectIDAsHex specifies if object IDs should be decoded as their hex representation. If false, a string made from the raw object ID bytes will be used. Defaults to true.

type StructCodecOptions

type StructCodecOptions struct {
	DecodeZeroStruct        *bool // Specifies if structs should be zeroed before decoding into them. Defaults to false.
	DecodeDeepZeroInline    *bool // Specifies if structs should be recursively zeroed when a inline value is decoded. Defaults to false.
	EncodeOmitDefaultStruct *bool // Specifies if default structs should be considered empty by omitempty. Defaults to false.
	AllowUnexportedFields   *bool // Specifies if unexported fields should be marshaled/unmarshaled. Defaults to false.
}

StructCodecOptions represents all possible options for struct encoding and decoding.

func MergeStructCodecOptions

func MergeStructCodecOptions(opts ...*StructCodecOptions) *StructCodecOptions

MergeStructCodecOptions combines the given *StructCodecOptions into a single *StructCodecOptions in a last one wins fashion.

func StructCodec

func StructCodec() *StructCodecOptions

StructCodec creates a new *StructCodecOptions

func (*StructCodecOptions) SetAllowUnexportedFields

func (t *StructCodecOptions) SetAllowUnexportedFields(b bool) *StructCodecOptions

SetAllowUnexportedFields specifies if unexported fields should be marshaled/unmarshaled. Defaults to false.

func (*StructCodecOptions) SetDecodeDeepZeroInline

func (t *StructCodecOptions) SetDecodeDeepZeroInline(b bool) *StructCodecOptions

SetDecodeDeepZeroInline specifies if structs should be zeroed before decoding into them. Defaults to false.

func (*StructCodecOptions) SetDecodeZeroStruct

func (t *StructCodecOptions) SetDecodeZeroStruct(b bool) *StructCodecOptions

SetDecodeZeroStruct specifies if structs should be zeroed before decoding into them. Defaults to false.

func (*StructCodecOptions) SetEncodeOmitDefaultStruct

func (t *StructCodecOptions) SetEncodeOmitDefaultStruct(b bool) *StructCodecOptions

SetEncodeOmitDefaultStruct specifies if default structs should be considered empty by omitempty. A default struct has all its values set to their default value. Defaults to false.

type TimeCodecOptions

type TimeCodecOptions struct {
	UseLocalTimeZone *bool // Specifies if we should decode into the local time zone. Defaults to false.
}

TimeCodecOptions represents all possible options for time.Time encoding and decoding.

func MergeTimeCodecOptions

func MergeTimeCodecOptions(opts ...*TimeCodecOptions) *TimeCodecOptions

MergeTimeCodecOptions combines the given *TimeCodecOptions into a single *TimeCodecOptions in a last one wins fashion.

func TimeCodec

func TimeCodec() *TimeCodecOptions

TimeCodec creates a new *TimeCodecOptions

func (*TimeCodecOptions) SetUseLocalTimeZone

func (t *TimeCodecOptions) SetUseLocalTimeZone(b bool) *TimeCodecOptions

SetUseLocalTimeZone specifies if we should decode into the local time zone. Defaults to false.

type UIntCodecOptions added in v1.3.0

type UIntCodecOptions struct {
	EncodeToMinSize *bool // Specifies if all uints except uint64 should be decoded to minimum size bsontype. Defaults to false.
}

UIntCodecOptions represents all possible options for uint encoding and decoding.

func MergeUIntCodecOptions added in v1.3.0

func MergeUIntCodecOptions(opts ...*UIntCodecOptions) *UIntCodecOptions

MergeUIntCodecOptions combines the given *UIntCodecOptions into a single *UIntCodecOptions in a last one wins fashion.

func UIntCodec added in v1.3.0

func UIntCodec() *UIntCodecOptions

UIntCodec creates a new *UIntCodecOptions

func (*UIntCodecOptions) SetEncodeToMinSize added in v1.3.0

func (u *UIntCodecOptions) SetEncodeToMinSize(b bool) *UIntCodecOptions

SetEncodeToMinSize specifies if all uints except uint64 should be decoded to minimum size bsontype. Defaults to false.

Jump to

Keyboard shortcuts

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