Documentation ¶
Overview ¶
Package hreflect contains reflect helpers.
Index ¶
- func AsTime(v reflect.Value, loc *time.Location) (time.Time, bool)
- func CallMethodByName(cxt context.Context, name string, v reflect.Value) []reflect.Value
- func GetMethodByName(v reflect.Value, name string) reflect.Value
- func GetMethodIndexByName(tp reflect.Type, name string) int
- func IsContextType(tp reflect.Type) bool
- func IsFloat(kind reflect.Kind) bool
- func IsInt(kind reflect.Kind) bool
- func IsNumber(kind reflect.Kind) bool
- func IsTime(tp reflect.Type) bool
- func IsTruthful(in any) bool
- func IsTruthfulValue(val reflect.Value) (truth bool)
- func IsUint(kind reflect.Kind) bool
- func IsValid(v reflect.Value) bool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AsTime ¶ added in v0.100.2
AsTime returns v as a time.Time if possible. The given location is only used if the value implements AsTimeProvider (e.g. go-toml local). A zero Time and false is returned if this isn't possible. Note that this function does not accept string dates.
func CallMethodByName ¶ added in v0.111.0
func GetMethodByName ¶ added in v0.94.0
GetMethodByName is the same as reflect.Value.MethodByName, but it caches the type lookup.
func GetMethodIndexByName ¶ added in v0.94.0
GetMethodIndexByName returns the index of the method with the given name, or -1 if no such method exists.
func IsContextType ¶ added in v0.123.0
IsContextType returns whether tp is a context.Context type.
func IsNumber ¶ added in v0.76.0
TODO(bep) replace the private versions in /tpl with these. IsNumber returns whether the given kind is a number.
func IsTime ¶ added in v0.100.2
IsTime returns whether tp is a time.Time type or if it can be converted into one in ToTime.
func IsTruthful ¶
IsTruthful returns whether in represents a truthful value. See IsTruthfulValue
func IsTruthfulValue ¶
IsTruthfulValue returns whether the given value has a meaningful truth value. This is based on template.IsTrue in Go's stdlib, but also considers IsZero and any interface value will be unwrapped before it's considered for truthfulness.
Types ¶
This section is empty.