diff options
Diffstat (limited to 'util/reflect_util')
| -rw-r--r-- | util/reflect_util/reflect.go | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/util/reflect_util/reflect.go b/util/reflect_util/reflect.go new file mode 100644 index 00000000..1fdaec50 --- /dev/null +++ b/util/reflect_util/reflect.go @@ -0,0 +1,21 @@ +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 +} |
