hreflect

package
v0.0.0-...-42d6f5d Latest Latest
Warning

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

Go to latest
Published: Oct 23, 2023 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Overview

Package hreflect contains reflect helpers.

Index

Constants

This section is empty.

Variables

View Source
var ContextInterface = reflect.TypeOf((*context.Context)(nil)).Elem()

Functions

func AsTime

func AsTime(v reflect.Value, loc *time.Location) (time.Time, bool)

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

func CallMethodByName(cxt context.Context, name string, v reflect.Value) []reflect.Value

func GetMethodByName

func GetMethodByName(v reflect.Value, name string) reflect.Value

GetMethodByName is the same as reflect.Value.MethodByName, but it caches the type lookup.

func GetMethodIndexByName

func GetMethodIndexByName(tp reflect.Type, name string) int

GetMethodIndexByName returns the index of the method with the given name, or -1 if no such method exists.

func IsFloat

func IsFloat(kind reflect.Kind) bool

IsFloat returns whether the given kind is a float.

func IsInt

func IsInt(kind reflect.Kind) bool

IsInt returns whether the given kind is an int.

func IsNumber

func IsNumber(kind reflect.Kind) bool

TODO(bep) replace the private versions in /tpl with these. IsNumber returns whether the given kind is a number.

func IsTime

func IsTime(tp reflect.Type) bool

IsTime returns whether tp is a time.Time type or if it can be converted into one in ToTime.

func IsTruthful

func IsTruthful(in any) bool

IsTruthful returns whether in represents a truthful value. See IsTruthfulValue

func IsTruthfulValue

func IsTruthfulValue(val reflect.Value) (truth bool)

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.

Based on: https://github.com/golang/go/blob/178a2c42254166cffed1b25fb1d3c7a5727cada6/src/text/template/exec.go#L306

func IsUint

func IsUint(kind reflect.Kind) bool

IsUint returns whether the given kind is an uint.

Types

This section is empty.

Jump to

Keyboard shortcuts

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