Documentation
¶
Index ¶
- Variables
- type Arguments
- type GroupNode
- func (n *GroupNode) Add(node *ProviderNode) (err error)
- func (n *GroupNode) ArgumentNodes() (args []Node)
- func (n *GroupNode) Arguments() (args []Key)
- func (n *GroupNode) Extract(target reflect.Value) (err error)
- func (n *GroupNode) Key() Key
- func (o *GroupNode) Of(k Key)
- func (o *GroupNode) Out() []Key
- func (n *GroupNode) Replace(node *ProviderNode) (err error)
- type InstanceProvider
- type InterfaceNode
- type Key
- type Node
- type ProviderNode
- type Storage
- func (s *Storage) Add(node Node, implements ...interface{}) (err error)
- func (s *Storage) All() (nodes []Node)
- func (s *Storage) Compile() (err error)
- func (s *Storage) Extract(name string, target reflect.Value) (err error)
- func (s *Storage) GroupNode(iface *InterfaceNode) (_ *GroupNode)
- func (s *Storage) Replace(node Node, implements ...interface{}) (err error)
Constants ¶
This section is empty.
Variables ¶
var (
ErrTypeNotProvided = errors.New("type not provided")
)
Functions ¶
This section is empty.
Types ¶
type Arguments ¶ added in v1.3.0
type Arguments interface {
Arguments() (args []Key)
}
Arguments ...
type GroupNode ¶
type GroupNode struct {
// contains filtered or unexported fields
}
GroupNode is a group node.
func (*GroupNode) Add ¶
func (n *GroupNode) Add(node *ProviderNode) (err error)
Add adds provider node to group.
func (*GroupNode) ArgumentNodes ¶ added in v1.3.0
ArgumentNodes return another nodes that included in this group. todo: Arguments() and ArgumentNodes() is too similar
func (*GroupNode) Arguments ¶ added in v1.3.0
Arguments returns another node keys that included in this group node.
func (*GroupNode) Replace ¶
func (n *GroupNode) Replace(node *ProviderNode) (err error)
Replace replaces provider node in group.
type InstanceProvider ¶ added in v1.2.0
type InstanceProvider interface { Arguments Provide(arguments []reflect.Value) (reflect.Value, error) ResultType() reflect.Type }
InstanceProvider ...
type InterfaceNode ¶
type InterfaceNode struct {
// contains filtered or unexported fields
}
InterfaceNode ...
func (*InterfaceNode) ArgumentNodes ¶ added in v1.3.0
func (n *InterfaceNode) ArgumentNodes() (args []Node)
ArgumentNodes return another nodes that included in this group. todo: Arguments() and ArgumentNodes() is too similar
func (*InterfaceNode) Arguments ¶ added in v1.3.0
func (n *InterfaceNode) Arguments() (args []Key)
Arguments returns another node keys that included in this group node.
type Node ¶
type Node interface { Arguments ArgumentNodes() []Node Key() Key Extract(target reflect.Value) (err error) Out() []Key Of(k Key) }
Node ...
type ProviderNode ¶
type ProviderNode struct { InstanceProvider // contains filtered or unexported fields }
ProviderNode ...
func NewProviderNode ¶
func NewProviderNode(name string, p InstanceProvider) (_ *ProviderNode)
NewProviderNode creates new provider node.
func (*ProviderNode) ArgumentNodes ¶ added in v1.3.0
func (n *ProviderNode) ArgumentNodes() (args []Node)
ArgumentNodes return another nodes that included in this group. todo: Arguments() and ArgumentNodes() is too similar
type Storage ¶
type Storage struct {
// contains filtered or unexported fields
}
Storage is a type graph storage implementation.
func (*Storage) GroupNode ¶
func (s *Storage) GroupNode(iface *InterfaceNode) (_ *GroupNode)
GroupNode returns or creates group node by interface.