在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:codegangsta/inject开源软件地址:https://github.com/codegangsta/inject开源编程语言:Go 99.1%开源软件介绍:inject-- import "github.com/codegangsta/inject" Package inject provides utilities for mapping and injecting dependencies in various ways. Language Translations: Usagefunc InterfaceOffunc InterfaceOf(value interface{}) reflect.Type InterfaceOf dereferences a pointer to an Interface type. It panics if value is not an pointer to an interface. type Applicatortype Applicator interface {
// Maps dependencies in the Type map to each field in the struct
// that is tagged with 'inject'. Returns an error if the injection
// fails.
Apply(interface{}) error
} Applicator represents an interface for mapping dependencies to a struct. type Injectortype Injector interface {
Applicator
Invoker
TypeMapper
// SetParent sets the parent of the injector. If the injector cannot find a
// dependency in its Type map it will check its parent before returning an
// error.
SetParent(Injector)
} Injector represents an interface for mapping and injecting dependencies into structs and function arguments. func Newfunc New() Injector New returns a new Injector. type Invokertype Invoker interface {
// Invoke attempts to call the interface{} provided as a function,
// providing dependencies for function arguments based on Type. Returns
// a slice of reflect.Value representing the returned values of the function.
// Returns an error if the injection fails.
Invoke(interface{}) ([]reflect.Value, error)
} Invoker represents an interface for calling functions via reflection. type TypeMappertype TypeMapper interface {
// Maps the interface{} value based on its immediate type from reflect.TypeOf.
Map(interface{}) TypeMapper
// Maps the interface{} value based on the pointer of an Interface provided.
// This is really only useful for mapping a value as an interface, as interfaces
// cannot at this time be referenced directly without a pointer.
MapTo(interface{}, interface{}) TypeMapper
// Provides a possibility to directly insert a mapping based on type and value.
// This makes it possible to directly map type arguments not possible to instantiate
// with reflect like unidirectional channels.
Set(reflect.Type, reflect.Value) TypeMapper
// Returns the Value that is mapped to the current type. Returns a zeroed Value if
// the Type has not been mapped.
Get(reflect.Type) reflect.Value
} TypeMapper represents an interface for mapping interface{} values based on type. |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论