github.com/insolar/vanilla@v0.0.0-20201023172447-248fdf805322/injector/api_inject.go (about) 1 // Copyright 2020 Insolar Network Ltd. 2 // All rights reserved. 3 // This material is licensed under the Insolar License version 1.0, 4 // available at https://github.com/insolar/assured-ledger/blob/master/LICENSE.md. 5 6 package injector 7 8 type DependencyRegistry interface { 9 FindDependency(id string) (interface{}, bool) 10 } 11 12 type ScanDependencyRegistry interface { 13 ScanDependencies(fn func(id string, v interface{}) bool) bool 14 } 15 16 type DependencyContainer interface { 17 DependencyRegistry 18 PutDependency(id string, v interface{}) 19 TryPutDependency(id string, v interface{}) bool 20 } 21 22 type DependencyRegistryFunc func(id string) (interface{}, bool) 23 type DependencyProviderFunc func(target interface{}, id string, resolveFn DependencyRegistryFunc) interface{}