container

package
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Oct 31, 2020 License: MIT Imports: 3 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	CacheTags map[string]FieldTag
)

Functions

This section is empty.

Types

type ConditionInjectionFunc added in v0.0.2

type ConditionInjectionFunc func(abs interface{}) bool

ConditionInjectionFunc conditional injection function

type Container

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

func New

func New() *Container

func (*Container) Bind

func (c *Container) Bind(abs, instance interface{}, singleton bool)

func (*Container) BindFunc

func (c *Container) BindFunc(abs interface{}, register InstanceRegister, singleton bool)

func (*Container) Bound

func (c *Container) Bound(abs interface{}) bool

func (*Container) GetRegisters

func (c *Container) GetRegisters() map[string]InstanceRegister

func (*Container) Init

func (c *Container) Init()

func (*Container) InjectionCondition added in v0.0.2

func (c *Container) InjectionCondition(f ConditionInjectionFunc, i InjectionFunc) *Container

func (*Container) InjectionRequire added in v0.0.2

func (c *Container) InjectionRequire(requireAbs interface{}, i InjectionFunc) *Container

func (*Container) InjectionWith added in v0.0.2

func (c *Container) InjectionWith(i InjectionFunc) *Container

func (*Container) Instance

func (c *Container) Instance(abs interface{}, params ...interface{}) (reflect.Value, error)

func (*Container) InstanceFor added in v0.0.2

func (c *Container) InstanceFor(abs interface{}, out interface{}, params ...interface{}) error

func (*Container) Invoke

func (c *Container) Invoke(f interface{}, params ...interface{}) ([]reflect.Value, error)

func (*Container) IsSingleton

func (c *Container) IsSingleton(abs interface{}) bool

func (*Container) MethodCall

func (c *Container) MethodCall(abs interface{}, method string, params ...interface{}) ([]reflect.Value, error)

func (*Container) Register

func (c *Container) Register(instance interface{}, singleton bool)

func (*Container) RegisterSingleton

func (c *Container) RegisterSingleton(instance interface{})

func (*Container) Singleton

func (c *Container) Singleton(abs interface{}, instance interface{})

func (*Container) WithInjector added in v0.0.2

func (c *Container) WithInjector(h Injector) *Container

type FieldTag

type FieldTag map[string]reflect.StructTag

func GetTags

func GetTags(i interface{}) FieldTag

type InjectionFunc added in v0.0.2

type InjectionFunc func(abs interface{}, last reflect.Value) (reflect.Value, error)

InjectionFunc injection function

type Injector added in v0.0.2

type Injector interface {
	Injection(abs interface{}, last reflect.Value) (reflect.Value, error)
	When(abs interface{}) bool
}

Injector interface for conditional initializer

type InstanceRegister

type InstanceRegister func(c *Container) reflect.Value

InstanceRegister register instance for container

Jump to

Keyboard shortcuts

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