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{}