typeregistry

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 12, 2020 License: MIT Imports: 4 Imported by: 1

README

typeregistry

Package typeregistry implements a simple type registry that maps go types to custom names.

New instances of registered types are later instantiated using reflect.

License

See included LICENSE file.

Documentation

Overview

Package typeregistry implements a simple type registry that maps go types to custom names.

Index

Constants

This section is empty.

Variables

View Source
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 alreday registered.
	ErrDuplicateEntry = ErrTypeRegistry.WrapFormat("entry '%s' already exists")
)

Functions

This section is empty.

Types

type Registry

type Registry struct {
	// contains filtered or unexported fields
}

Registry is a Go type registry.

func New

func New() *Registry

New creates a new Registry instance.

func (*Registry) GetInterface

func (r *Registry) GetInterface(name string) (interface{}, error)

GetInterface returns an interface to a new reflect.Value of reflect.Type registered under specified name or an error.

func (*Registry) GetType

func (r *Registry) GetType(name string) (reflect.Type, error)

GetType returns a registered reflect.Type specified by name or an error.

func (*Registry) GetValue

func (r *Registry) GetValue(name string) (reflect.Value, error)

GetValue returns a new reflect.Value of reflect.Type registered under specified name or an error.

func (*Registry) Register

func (r *Registry) Register(v interface{}) error

Register registers a reflect.Type of value specified by v under its' reflect.Type name or returns an error.

func (*Registry) RegisterNamed

func (r *Registry) RegisterNamed(name string, v interface{}) error

RegisterNamed registers a reflect.Type of value specified by v under specified name or returns an error.

func (*Registry) RegisteredNames

func (r *Registry) RegisteredNames() []string

RegisteredNames returns a slice of registered names.

func (*Registry) Unregister

func (r *Registry) Unregister(name string) error

Unregister unregisters a reflect.Type registered under specified name or returns an error.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL