Documentation ¶
Index ¶
- Variables
- 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 Includes(all, subset []string) bool
- func InternalBSONValue(typ bsontype.Type, bytes []byte) []byte
- func Intersect(listA, listB []string) []string
- func IsEmpty(sub Subject) error
- func IsNotEmpty(sub Subject) error
- func IsNotZero(sub Subject) error
- func IsValid(sub Subject) error
- func IsZero(sub Subject) error
- 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
- func Validate(obj Accessible, fn func(v *Validator)) error
- 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) MimeType() string
- 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 Rule
- func IsFormat(fns ...func(string) bool) Rule
- func IsMaxFloat(max float64) Rule
- func IsMaxInt(max int64) Rule
- func IsMaxLen(max int) Rule
- func IsMaxUint(max uint64) Rule
- func IsMinFloat(min float64) Rule
- func IsMinInt(min int64) Rule
- func IsMinLen(min int) Rule
- func IsMinUint(min uint64) Rule
- func IsPatternMatch(pattern string) Rule
- func IsRegexMatch(reg *regexp.Regexp) Rule
- type Subject
- type Validatable
- type ValidationError
- type Validator
Constants ¶
This section is empty.
Variables ¶
var IsDNSName = IsFormat(govalidator.IsDNSName)
IsDNSName will check if a string is a valid DNS name.
var IsEmail = IsFormat(govalidator.IsEmail)
IsEmail will check if a string is a valid email.
var IsHost = IsFormat(govalidator.IsHost)
IsHost will check if a string is a valid host.
var IsIPAddress = IsFormat(govalidator.IsIP)
IsIPAddress will check if a string is a valid IP address.
var IsNumeric = IsFormat(govalidator.IsNumeric)
IsNumeric will check if a string is numeric.
var IsURL = IsFormat(govalidator.IsURL)
IsURL will check if a string is a valid URL.
var IsValidUTF8 = IsFormat(utf8.ValidString)
IsValidUTF8 will check if a string is valid utf8.
var IsVisible = IsFormat(utf8.ValidString, func(s string) bool { c := 0 w := 0 for _, r := range s { c++ if unicode.IsSpace(r) { w++ } } return w < c })
IsVisible will check if a string is visible.
Functions ¶
func Get ¶
func Get(acc Accessible, name string) (interface{}, bool)
Get will look up the specified field on the accessible and return its value and whether the field was found at all.
func InternalBSONValue ¶ added in v0.29.1
InternalBSONValue will return a byte sequence for an internal BSON value.
func IsEmpty ¶ added in v0.30.0
IsEmpty will check if the provided value is empty. Emptiness can only be checked for slices and maps.
func IsNotEmpty ¶ added in v0.30.0
IsNotEmpty will check if the provided value is not empty. Emptiness can only be checked for slices and maps.
func IsNotZero ¶ added in v0.30.0
IsNotZero will check if the provided value is not zero. It will determine zeroness using IsZero() or Zero() if implemented. A nil pointer, slice, array or map is also considered as zero.
func IsValid ¶ added in v0.30.0
IsValid will check if the value is valid by calling Validate(), IsValid() or Valid().
func IsZero ¶ added in v0.30.0
IsZero will check if the provided value is zero. It will determine zeroness using IsZero() or Zero() if implemented. A nil pointer, slice, array or map is also considered as zero.
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.
func Validate ¶ added in v0.30.0
func Validate(obj Accessible, fn func(v *Validator)) error
Validate will validate the provided accessible using the specified validator function.
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 ¶
func BuildAccessor(v Accessible, ignore ...string) *Accessor
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 Rule ¶ added in v0.30.0
Rule is a single validation rule.
func IsFormat ¶ added in v0.30.0
IsFormat will check of the value corresponds to the format determined by the provided string format checker.
func IsMaxFloat ¶ added in v0.30.0
IsMaxFloat checks whether the value satisfies the provided maximum.
func IsMaxLen ¶ added in v0.30.0
IsMaxLen checks whether the value does not exceed the specified length.
func IsMaxUint ¶ added in v0.30.0
IsMaxUint checks whether the value satisfies the provided maximum.
func IsMinFloat ¶ added in v0.30.0
IsMinFloat checks whether the value satisfies the provided minimum.
func IsMinLen ¶ added in v0.30.0
IsMinLen checks whether the value has at least the specified length.
func IsMinUint ¶ added in v0.30.0
IsMinUint checks whether the value satisfies the provided minimum.
func IsPatternMatch ¶ added in v0.30.0
IsPatternMatch will check if a string matches a regular expression pattern.
func IsRegexMatch ¶ added in v0.30.0
IsRegexMatch will check if a string matches a regular expression.
type Subject ¶ added in v0.30.0
Subject carries the to be validated value.
type Validatable ¶ added in v0.29.0
type Validatable interface {
Validate() error
}
Validatable represents a type that can be validated.
type ValidationError ¶ added in v0.30.0
ValidationError describes a validation error.
func (ValidationError) Error ¶ added in v0.30.0
func (e ValidationError) Error() string
Error implements the error interface.
type Validator ¶ added in v0.30.0
type Validator struct {
// contains filtered or unexported fields
}
Validator is used to validate an object.
func (*Validator) Error ¶ added in v0.30.0
Error will return the validation error or nil of no errors have yet been reported.
func (*Validator) Items ¶ added in v0.30.0
Items will validate each item of the slice at the named field using the provided rules.