package reflect_util

import "reflect"

func GetFields(t reflect.Type) []reflect.StructField {
	num := t.NumField()
	fields := make([]reflect.StructField, 0, num)
	for i := 0; i < num; i++ {
		fields = append(fields, t.Field(i))
	}
	return fields
}

func GetFieldValues(v reflect.Value) []reflect.Value {
	num := v.NumField()
	fields := make([]reflect.Value, 0, num)
	for i := 0; i < num; i++ {
		fields = append(fields, v.Field(i))
	}
	return fields
}