di

package
v0.1.0-beta.3 Latest Latest
Warning

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

Go to latest
Published: Nov 14, 2023 License: Apache-2.0 Imports: 4 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddInstance

func AddInstance(services ServiceCollector, ins any) error

func AddInstanceFor

func AddInstanceFor[insType any, dstType any](services ServiceCollector, ins insType) error

func AddScope

func AddScope(services ServiceCollector, creator any) error

func AddScopeFor

func AddScopeFor[forT any](services ServiceCollector, creator any) error

func AddSingleton

func AddSingleton(services ServiceCollector, creator any) error

func AddSingletonFor

func AddSingletonFor[forT any](services ServiceCollector, creator any) error

func Collector_AddInstance

func Collector_AddInstance[insType any, dstType any](services ServiceCollector, ins insType) error

func Collector_AddScope

func Collector_AddScope(services ServiceCollector, creator any) error

func Collector_AddScopeFor

func Collector_AddScopeFor[forT any](services ServiceCollector, creator any) error

func Collector_AddSingleton

func Collector_AddSingleton(services ServiceCollector, creator any) error

func Collector_AddSingletonFor

func Collector_AddSingletonFor[forT any](services ServiceCollector, creator any) error

func GetService

func GetService[ServiceType any](provider ServiceProvider) (ServiceType, error)

func Provider_GetService

func Provider_GetService[ServiceType any](provider ServiceProvider) (ServiceType, error)

Types

type Container

type Container struct {
	Scope
	ServiceCollector
}

func New

func New() *Container

type Scope

type Scope interface {
	ServiceProvider

	CreateSubScope(id string, options ...func(ServiceCollector)) (Scope, error)
	GetSubScope(id string) (Scope, bool)
}

type ServiceCollector

type ServiceCollector interface {
	AddService(descriptor *ServiceDescriptor) error
}

type ServiceDescriptor

type ServiceDescriptor struct {
	LifeTime ServiceLifetime

	Type    reflect.Type
	DstType reflect.Type

	Instance reflect.Value
	Creator  reflect.Value
	// contains filtered or unexported fields
}

func (*ServiceDescriptor) IsSuport

func (descriptor *ServiceDescriptor) IsSuport(id string) bool

type ServiceLifetime

type ServiceLifetime int
const (
	SL_Unknown ServiceLifetime = iota
	SL_Singleton
	SL_Scoped
	SL_Transient
)

type ServiceProvider

type ServiceProvider interface {
	GetService(serviceType reflect.Type) (reflect.Value, error)
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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