Versions in this module Expand all Collapse all v12 v12.1.9 Aug 12, 2022 Changes in this version + var DefaultErrorHandler ErrorHandler + var DefaultHijacker Hijacker + var DefaultTypeChecker TypeChecker + var EmptyIn = []reflect.Value + func IndirectType(typ reflect.Type) reflect.Type + func IndirectValue(v reflect.Value) reflect.Value + func IsError(typ reflect.Type) bool + func IsFunc(kindable interface{ ... }) bool + func IsNil(v reflect.Value) bool + func IsZero(v reflect.Value) bool + func LookupNonZeroFieldsValues(v reflect.Value, skipUnexported bool) (bindValues []reflect.Value) + func MakeReturnValue(fn reflect.Value, goodFunc TypeChecker, errorHandler ErrorHandler) (func(ctx context.Context) reflect.Value, reflect.Type, error) + func NumFields(elemTyp reflect.Type, skipUnexported bool) int + func ValueOf(o interface{}) reflect.Value + func ValuesOf(valuesAsInterface []interface{}) (values []reflect.Value) + type BindObject struct + BindType BindType + ReturnValue func(ctx context.Context) reflect.Value + Type reflect.Type + Value reflect.Value + func MakeBindObject(v reflect.Value, goodFunc TypeChecker, errorHandler ErrorHandler) (b BindObject, err error) + func (b *BindObject) Assign(ctx context.Context, toSetter func(reflect.Value)) + func (b *BindObject) IsAssignable(to reflect.Type) bool + type BindType uint32 + const Dynamic + const Static + type D struct + func New() *D + func (d *D) Clone() *D + func (d *D) ErrorHandler(errorHandler ErrorHandler) *D + func (d *D) Func(fn interface{}) *FuncInjector + func (d *D) GoodFunc(fn TypeChecker) *D + func (d *D) Hijack(fn Hijacker) *D + func (d *D) Sort(with Sorter) *D + func (d *D) Struct(s interface{}) *StructInjector + type ErrorHandler interface + HandleError func(ctx context.Context, err error) + type ErrorHandlerFunc func(ctx context.Context, err error) + func (fn ErrorHandlerFunc) HandleError(ctx context.Context, err error) + type FuncInjector struct + Has bool + Length int + func Func(fn interface{}, values ...reflect.Value) *FuncInjector + func MakeFuncInjector(fn reflect.Value, hijack Hijacker, goodFunc TypeChecker, ...) *FuncInjector + func (s *FuncInjector) Call(ctx context.Context) []reflect.Value + func (s *FuncInjector) ErrorHandler(errorHandler ErrorHandler) *FuncInjector + func (s *FuncInjector) Inject(ctx context.Context, in *[]reflect.Value) + func (s *FuncInjector) Retry(...) bool + func (s *FuncInjector) String() (trace string) + type Hijacker func(reflect.Type) (*BindObject, bool) + type Scope uint8 + const Singleton + const Stateless + func (scope Scope) String() string + type Sorter func(t1 reflect.Type, t2 reflect.Type) bool + var SortByNumMethods Sorter = func(t1 reflect.Type, t2 reflect.Type) bool { ... } + type StructInjector struct + CanInject bool + Has bool + Scope Scope + func MakeStructInjector(v reflect.Value, hijack Hijacker, goodFunc TypeChecker, sorter Sorter, ...) *StructInjector + func Struct(s interface{}, values ...reflect.Value) *StructInjector + func (s *StructInjector) Acquire() reflect.Value + func (s *StructInjector) AcquireSlice() []reflect.Value + func (s *StructInjector) Inject(ctx context.Context, dest interface{}) + func (s *StructInjector) InjectElem(ctx context.Context, destElem reflect.Value) + func (s *StructInjector) String() (trace string) + type TypeChecker func(reflect.Type) bool + type Values []reflect.Value + func NewValues() Values + func (bv *Values) Add(values ...interface{}) + func (bv *Values) AddOnce(value interface{}) bool + func (bv *Values) AddValues(values ...reflect.Value) + func (bv *Values) Remove(value interface{}, n int) bool + func (bv Values) Clone() Values + func (bv Values) CloneWithFieldsOf(s interface{}) Values + func (bv Values) Has(value interface{}) bool + func (bv Values) Len() int