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

reflectutil

package
v0.0.47 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2023 License: MIT Imports: 4 Imported by: 1

README

reflectutil

The package contains various helpers for reflection

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetStructField

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

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

func GetUnexportedField

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

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

func SetUnexportedField

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

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

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

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