Documentation
¶
Overview ¶
Package typeregistry implements a simple type registry.
Index ¶
- Variables
- func GetLongTypeName(i interface{}) (r string)
- type Registry
- func (r *Registry) GetInterface(name string) (interface{}, error)
- func (r *Registry) GetType(name string) (reflect.Type, error)
- func (r *Registry) GetValue(name string) (reflect.Value, error)
- func (r *Registry) Register(v interface{}) error
- func (r *Registry) RegisterNamed(name string, v interface{}) error
- func (r *Registry) RegisteredNames() []string
- func (r *Registry) Unregister(name string) error
Constants ¶
This section is empty.
Variables ¶
var ( // ErrTypeRegistry is the base typeregistry error. ErrTypeRegistry = errorex.New("typeregistry") // ErrNotFound is returned when a type was not found in the registry. ErrNotFound = ErrTypeRegistry.WrapFormat("entry '%s' not found") // ErrDuplicateEntry is returned when registering a type that is already // registered. ErrDuplicateEntry = ErrTypeRegistry.WrapFormat("entry '%s' already exists") // ErrInvalidParam is returned when an invalid parameter was passed to // a registration method. ErrInvalidParam = ErrTypeRegistry.Wrap("invalid parameter") )
Functions ¶
func GetLongTypeName ¶ added in v0.0.3
func GetLongTypeName(i interface{}) (r string)
GetLongTypeName gets the long Type name of a Go value contained in i. If i is a pointer it dereferences it prefixing resulting string with a "*" for each level until it reaches concrete type for which it appends the type path constructed as "PkgPath/TypeName". e.g. "***github.com/vedranvuk/typeregistry/typeregistry.Registry".
GetLongTypeName is used by Register function to generate the type name. Name for retrieval of types registered by Register should be generated by this function.
Types ¶
type Registry ¶
type Registry struct {
// contains filtered or unexported fields
}
Registry is a Go type registry.
func (*Registry) GetInterface ¶
GetInterface returns an interface to a new reflect.Value of reflect.Type registered under specified name or an error.
func (*Registry) GetValue ¶
GetValue returns a new reflect.Value of reflect.Type registered under specified name or an error.
func (*Registry) Register ¶
Register registers a reflect.Type of value specified by v under its' reflect.Type name or returns an error.
func (*Registry) RegisterNamed ¶
RegisterNamed registers a reflect.Type of value specified by v under specified name or returns an error.
func (*Registry) RegisteredNames ¶
RegisteredNames returns a slice of registered type names.
func (*Registry) Unregister ¶
Unregister unregisters a reflect.Type registered under specified name or returns an error.