Documentation ¶
Overview ¶
Helpers for type inflection and simplifying working with Golang generic interface types
Index ¶
- func Auto(in interface{}) interface{}
- func Bool(in interface{}) bool
- func Bytes(in interface{}) []byte
- func Dump(in1 interface{}, in ...interface{}) string
- func Dumpf(format string, in ...interface{}) string
- func Duration(in interface{}) time.Duration
- func Err(in interface{}) error
- func Float(in interface{}) float64
- func FunctionArity(fn interface{}) (int, int, error)
- func Int(in interface{}) int64
- func IsArray(in interface{}) bool
- func IsEmpty(value interface{}) bool
- func IsFloat(in interface{}) bool
- func IsFunction(in interface{}) bool
- func IsFunctionArity(in interface{}, inParams int, outParams int) bool
- func IsInteger(in interface{}) bool
- func IsKind(in interface{}, kinds ...reflect.Kind) bool
- func IsKindOfBool(in interface{}) bool
- func IsKindOfFloat(in interface{}) bool
- func IsKindOfInteger(in interface{}) bool
- func IsKindOfString(in interface{}) bool
- func IsMap(in interface{}) bool
- func IsNumeric(in interface{}) bool
- func IsScalar(in interface{}) bool
- func IsStruct(in interface{}) bool
- func IsZero(value interface{}) bool
- func Len(in interface{}) int
- func Map(in interface{}, tagName ...string) map[Variant]Variant
- func MapNative(in interface{}, tagName ...string) map[string]interface{}
- func RegisterTypeHandler(handler TypeConvertFunc, types ...string)
- func ResolveValue(in interface{}) interface{}
- func SetValue(target interface{}, value interface{}) error
- func Split(in interface{}, on string) []string
- func String(in interface{}) string
- func Strings(in interface{}) []string
- func Time(in interface{}) time.Time
- type TypeConvertFunc
- type Variant
- func (self Variant) Auto() interface{}
- func (self Variant) Bool() bool
- func (self Variant) Bytes() []byte
- func (self Variant) Duration() time.Duration
- func (self Variant) Err() error
- func (self Variant) Float() float64
- func (self Variant) Int() int64
- func (self Variant) Interface() interface{}
- func (self Variant) IsNil() bool
- func (self Variant) IsZero() bool
- func (self Variant) Map(tagName ...string) map[Variant]Variant
- func (self Variant) MapNative(tagName ...string) map[string]interface{}
- func (self Variant) MarshalJSON() ([]byte, error)
- func (self Variant) Slice() []Variant
- func (self Variant) Split(on string) []string
- func (self Variant) String() string
- func (self Variant) Strings() []string
- func (self Variant) Time() time.Time
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Dump ¶
func Dump(in1 interface{}, in ...interface{}) string
Returns a pretty-printed string representation of the given values.
func FunctionArity ¶ added in v1.7.6
Returns the number of input and return arguments a given function has.
func IsArray ¶
func IsArray(in interface{}) bool
Returns whether the given value is a slice or array.
func IsEmpty ¶
func IsEmpty(value interface{}) bool
Returns whether the given value is "empty" in the semantic sense. Zero values are considered empty, as are arrays, slices, and maps containing only empty values (called recursively). Finally, strings are trimmed of whitespace and considered empty if the result is zero-length.
func IsFloat ¶
func IsFloat(in interface{}) bool
Returns whether the given value represents a floating point value.
func IsFunction ¶
func IsFunction(in interface{}) bool
Returns whether the given value is a function of any kind
func IsFunctionArity ¶
Returns whether the given value is a function. If inParams is not -1, the function must accept that number of arguments. If outParams is not -1, the function must return that number of values.
func IsInteger ¶
func IsInteger(in interface{}) bool
Returns whether the given value represents an integer value.
func IsKind ¶
Dectect whether the concrete underlying value of the given input is one or more Kinds of value.
func IsKindOfBool ¶
func IsKindOfBool(in interface{}) bool
func IsKindOfFloat ¶
func IsKindOfFloat(in interface{}) bool
func IsKindOfInteger ¶
func IsKindOfInteger(in interface{}) bool
func IsKindOfString ¶
func IsKindOfString(in interface{}) bool
func IsNumeric ¶
func IsNumeric(in interface{}) bool
Returns whether the given value represents a numeric value.
func IsScalar ¶
func IsScalar(in interface{}) bool
Return whether the given input is a discrete scalar value (ints, floats, bools, strings), otherwise known as "primitive types" in some other languages.
func IsZero ¶
func IsZero(value interface{}) bool
Returns whether the given value represents the underlying type's zero value
func Len ¶
func Len(in interface{}) int
Returns the length of the given value that could have a length (strings, slices, arrays, maps, and channels). If the value is not a type that has a length, -1 is returned.
func RegisterTypeHandler ¶ added in v1.5.55
func RegisterTypeHandler(handler TypeConvertFunc, types ...string)
Register's a handler used for converting one type to another. Type are checked in the following manner: The input value's reflect.Type String() value is matched, falling back to its reflect.Kind String() value, finally checking for a special "*" value that matches any type. If the handler function returns nil, its value replaces the input value. If the special error type PassthroughType is returned, the original value is returned unmodified.
func ResolveValue ¶
func ResolveValue(in interface{}) interface{}
Return the concrete value pointed to by a pointer type, or within an interface type. Allows functions receiving pointers to supported types to work with those types without doing reflection.
func SetValue ¶
func SetValue(target interface{}, value interface{}) error
Attempts to set the given reflect.Value to the given interface value
Types ¶
type TypeConvertFunc ¶ added in v1.5.55
type TypeConvertFunc = utils.TypeConvertFunc
type Variant ¶
type Variant struct {
Value interface{}
}
Represents an interface type with helper functions for making it easy to do type conversions.
func (Variant) Auto ¶
func (self Variant) Auto() interface{}
Return the value automatically converted to the appropriate type.
func (Variant) Bool ¶
Return true if the value can be interpreted as a boolean true value, or false otherwise.
func (Variant) Duration ¶
Return the value as a time.Duration if it can be interpreted as such, or zero otherwise.
func (Variant) Err ¶ added in v1.7.35
Return the value converted to an error, or nil if it is not an error.
func (Variant) Float ¶
Return the value as a float if it can be interpreted as such, or 0 otherwise.
func (Variant) Int ¶
Return the value as an integer if it can be interpreted as such, or 0 otherwise. Float values will be truncated to integers.
func (Variant) Map ¶
Return the value as a map[Variant]Variant if it can be interpreted as such, or an empty map otherwise. If the variant contains a struct, and a tagName is specified, the key names of the output map will be taken from the struct field's tag value, consistent with the rules used in encoding/json.
func (Variant) MapNative ¶ added in v1.6.0
Return the value as a map[string]interface{} if it can be interpreted as such, or an empty map otherwise.
func (Variant) MarshalJSON ¶
Satisfy the json.Marshaler interface
func (Variant) Slice ¶
Return the value as a slice of Variants. Scalar types will return a slice containing a single Variant element representing the value.
func (Variant) Split ¶ added in v1.7.50
Converts the value to a string, then splits on the given delimiter.
func (Variant) String ¶
Return the value as a string, or an empty string if the value could not be converted.