typeutil

package
v1.5.56 Latest Latest
Warning

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

Go to latest
Published: Nov 7, 2018 License: MIT Imports: 8 Imported by: 77

Documentation

Overview

Helpers for type inflection and simplifying working with Golang generic interface types

Index

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 Dumpf

func Dumpf(format string, in ...interface{}) string

Returns a pretty-printed string representation of the given values.

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

func IsFunctionArity(in interface{}, inParams int, outParams int) bool

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

func IsKind(in interface{}, kinds ...reflect.Kind) bool

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 IsMap

func IsMap(in interface{}) bool

Returns whether the given value is a map.

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 IsStruct

func IsStruct(in interface{}) bool

Returns whether the given value is a struct.

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 V

func V(value interface{}) Variant

Shortcut for creating a Variant.

func (Variant) Auto

func (self Variant) Auto() interface{}

Return the value automaticall converted to the appropriate type.

func (Variant) Bool

func (self Variant) Bool() bool

Return true if the value can be interpreted as a boolean true value, or false otherwise.

func (Variant) Bytes

func (self Variant) Bytes() []byte

Return the value at key as a byte slice.

func (Variant) Duration

func (self Variant) Duration() time.Duration

Return the value as a time.Duration if it can be interpreted as such, or zero otherwise.

func (Variant) Float

func (self Variant) Float() float64

Return the value as a float if it can be interpreted as such, or 0 otherwise.

func (Variant) Int

func (self Variant) Int() int64

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) IsNil

func (self Variant) IsNil() bool

Returns whether the underlying value is nil.

func (Variant) IsZero

func (self Variant) IsZero() bool

Returns whether the underlying value is a zero value.

func (Variant) Map

func (self Variant) Map() map[Variant]Variant

Return the value as a map[Variant]Variant if it can be interpreted as such, or nil otherwise.

func (Variant) MarshalJSON

func (self Variant) MarshalJSON() ([]byte, error)

Satisfy the json.Marshaler interface

func (Variant) Slice

func (self Variant) Slice() []Variant

Return the value as a slice of Variants. Scalar types will return a slice containing a single Variant element representing the value.

func (Variant) String

func (self Variant) String() string

Return the value as a string, or an empty string if the value could not be converted.

func (Variant) Time

func (self Variant) Time() time.Time

Return the value as a time.Time if it can be interpreted as such, or zero time otherwise.

Jump to

Keyboard shortcuts

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