Browse Source

reflective: Add Reflection{} placeholder and the New() factory

Signed-off-by: Alejandro Mery <amery@jpi.io>
dev-amery-reflective
Alejandro Mery 1 year ago
parent
commit
a38f0c74e8
  1. 27
      reflective/reflection.go

27
reflective/reflection.go

@ -0,0 +1,27 @@
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
}
Loading…
Cancel
Save