package reflective import "reflect" // Reflection provides Marshalling/Unmarshalling oriented view // of a value type Reflection struct { v reflect.Value } // New creates a Reflection of the given pointer func New(v any) (*Reflection, error) { rv := reflect.ValueOf(v) if rv.Kind() != reflect.Pointer || rv.IsNil() { err := &InvalidUnmarshalError{ Type: rv.Type(), } return nil, err } r := &Reflection{ v: rv, } return r, nil }