Documentation ¶
Index ¶
- func Backoff(min, max time.Duration, factor float64, attempt int) time.Duration
- func Contains(list []string, str string) bool
- func Get(acc Accessible, name string) (interface{}, bool)
- func GetType(v interface{}) reflect.Type
- func Includes(all, subset []string) bool
- func InternalBSONValue(typ bsontype.Type, bytes []byte) []byte
- func Intersect(listA, listB []string) []string
- func MustGet(acc Accessible, name string) interface{}
- func MustSet(acc Accessible, name string, value interface{})
- func Set(acc Accessible, name string, value interface{}) bool
- func Subtract(listA, listB []string) []string
- func Union(lists ...[]string) []string
- func Unique(list []string) []string
- type Accessible
- type Accessor
- type BasicAccess
- type Coding
- func (c Coding) GetKey(field reflect.StructField) string
- func (c Coding) Marshal(in interface{}) ([]byte, error)
- func (c Coding) SafeUnmarshal(in []byte, out interface{}) error
- func (c Coding) Transfer(in, out interface{}) error
- func (c Coding) Unmarshal(in []byte, out interface{}) error
- func (c Coding) UnmarshalKeyedList(data []byte, list interface{}, field string) error
- type Field
- type Map
- type NoValidation
- type Validatable
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Get ¶
func Get(acc Accessible, name string) (interface{}, bool)
Get will lookup the specified field on the accessible and return its value and whether the field was found at all.
func GetType ¶ added in v0.29.5
GetType will get the underlying reflect type for the specified value. It will unwrap pointers automatically.
func InternalBSONValue ¶ added in v0.29.1
InternalBSONValue will return a byte sequence for an internal BSON value.
func MustGet ¶
func MustGet(acc Accessible, name string) interface{}
MustGet will call Get and panic if the operation failed.
func MustSet ¶
func MustSet(acc Accessible, name string, value interface{})
MustSet will call Set and panic if the operation failed.
func Set ¶
func Set(acc Accessible, name string, value interface{}) bool
Set will set the specified field on the accessible with the provided value and return whether the field has been found and the value has been set.
func Subtract ¶ added in v0.29.1
Subtract will return a list with items that are only part of the first list.
Types ¶
type Accessible ¶
type Accessible interface {
GetAccessor(interface{}) *Accessor
}
Accessible is a type that has dynamically accessible fields.
type Accessor ¶
Accessor provides dynamic access to a structs fields.
func BuildAccessor ¶
BuildAccessor will build an accessor for the provided type.
func GetAccessor ¶ added in v0.29.5
func GetAccessor(acc Accessible) *Accessor
GetAccessor is a short-hand to retrieve the accessor of an accessible.
type BasicAccess ¶ added in v0.29.5
type BasicAccess struct{}
BasicAccess may be embedded in a struct to provide basic accessibility.
func (*BasicAccess) GetAccessor ¶ added in v0.29.5
func (a *BasicAccess) GetAccessor(v interface{}) *Accessor
GetAccessor implements the Accessible interface.
type Coding ¶
type Coding string
Coding defines an encoding, decoding and transfer scheme.
func (Coding) GetKey ¶ added in v0.29.1
func (c Coding) GetKey(field reflect.StructField) string
GetKey will return the coding key for the specified struct field.
func (Coding) Marshal ¶
Marshal will encode the specified value into a byte sequence.
Note: When marshalling a non document compatible type to BSON the result is a custom byte sequence that can only be unmarshalled by this codec.
func (Coding) SafeUnmarshal ¶ added in v0.29.1
SafeUnmarshal will decode the specified value from the provided byte sequence. It will preserve JSON numbers when decoded into an interface{} value.
func (Coding) Unmarshal ¶
Unmarshal will decode the specified value from the provided byte sequence.
func (Coding) UnmarshalKeyedList ¶ added in v0.29.1
UnmarshalKeyedList will unmarshal a list and match objects by comparing the key in the specified field instead of their position in the list.
When using with custom types the type should implement the following methods:
func (l *Links) UnmarshalBSONValue(typ bsontype.Type, bytes []byte) error { return stick.BSON.UnmarshalKeyedList(stick.InternalBSONValue(typ, bytes), l, "Ref") } func (l *Links) UnmarshalJSON(bytes []byte) error { return stick.JSON.UnmarshalKeyedList(bytes, l, "Ref") }
type Map ¶
type Map map[string]interface{}
Map represents a simple map. It provides methods to marshal and unmarshal concrete types to and from the map using JSON or BSON coding.
func (*Map) Marshal ¶
Marshal will marshal the specified value to the map. If the map already contains data, only fields present in the value are overwritten.
func (*Map) MustMarshal ¶
MustMarshal will marshal and panic on error.
func (*Map) MustUnmarshal ¶
MustUnmarshal will unmarshal and panic on error.
type NoValidation ¶
type NoValidation struct{}
NoValidation can be embedded in a struct to provide a no-op validation method.
func (*NoValidation) Validate ¶
func (*NoValidation) Validate() error
Validate will perform no validation.
type Validatable ¶ added in v0.29.0
type Validatable interface {
Validate() error
}
Validatable represents a type that can be validated.