Help us shape the future of Go! Take the 2026 Go Developer Survey

reflectutil

package
v0.11.9 Latest Latest
Warning

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

Go to latest
Published: Oct 6, 2026 License: MIT Imports: 4 Imported by: 2

README

reflectutil

The package contains various helpers for reflection

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetStructField added in v0.0.8

func GetStructField(structInstance interface{}, fieldname string) reflect.Value

GetStructField obtains a reference to a field of a pointer to a struct

func GetUnexportedField added in v0.0.8

func GetUnexportedField(structInstance interface{}, fieldname string) interface{}

GetUnexportedField unwraps an unexported field with pointer to struct and field name

func SetUnexportedField added in v0.0.8

func SetUnexportedField(structInstance interface{}, fieldname string, value interface{})

SetUnexportedField sets (pointer to) struct's field with the specified value

func SizeOf added in v0.2.0

func SizeOf(v interface{}) int

SizeOf returns the size of 'v' in bytes. If there is an error during calculation, Of returns -1.

Implementation is taken from https://github.com/DmitriyVTitov/size/blob/v1.5.0/size.go#L14 which in turn is inspired from binary.Size of stdlib

func ToMap

func ToMap(v interface{}, tomapkey ToMapKey, unexported bool) (map[string]interface{}, error)

ToMap converts exported fields of a struct to map[string]interface{} - non exported fields are converted to string

func ToMapWithDefault

func ToMapWithDefault(v interface{}) (map[string]interface{}, error)

ToMapWithDefault settings

func UnwrapUnexportedField added in v0.0.8

func UnwrapUnexportedField(field reflect.Value) interface{}

UnwrapUnexportedField unwraps an unexported field

Types

type ToMapKey

type ToMapKey func(string) string
var TitleUnderscore ToMapKey = func(raw string) string {
	newstr := make([]rune, 0, len(raw))
	for i, chr := range raw {
		if isUpper := 'A' <= chr && chr <= 'Z'; isUpper {
			if i > 0 {
				newstr = append(newstr, '_')
			}
			chr -= 'A' - 'a'
		}
		newstr = append(newstr, chr)
	}
	return string(newstr)
}

TitleUnderscore from https://github.com/go-ini/ini/blob/5e97220809ffaa826f787728501264e9114cb834/struct.go#L46

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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