dep

package
v0.34.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2020 License: MIT Imports: 3 Imported by: 0

Documentation

Overview

Package dep 依赖管理

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Default

type Default struct {
	// contains filtered or unexported fields
}

Default 默认的 Module 实现

包含了一个函数列表,当作模块的初始化功能。

func NewDefaultModule

func NewDefaultModule(id, desc string, dep ...string) *Default

NewDefaultModule 返回 Default 实例

func (*Default) AddInit

func (m *Default) AddInit(title string, f func() error)

AddInit 添加初始化函数

func (*Default) Deps

func (m *Default) Deps() []string

Deps 返回依赖列表

func (*Default) Description

func (m *Default) Description() string

Description 详细描述

func (*Default) ID

func (m *Default) ID() string

ID 唯一 ID

func (*Default) Init

func (m *Default) Init(info *log.Logger) error

Init 执行初始化函数

如果包含了多个函数,在其中一个函数出错之后,将退出执行列表。

func (*Default) Inited

func (m *Default) Inited() bool

Inited 是否已经初始化

type Dep

type Dep struct {
	// contains filtered or unexported fields
}

Dep 依赖管理

func New

func New(info *log.Logger) *Dep

New 声明新的 Dep 变量

func (*Dep) AddModule

func (d *Dep) AddModule(m Module) error

AddModule 添加新模块

如果所有的模块都已经初始化,则会尝试初始化 m。

func (*Dep) FindModule

func (d *Dep) FindModule(id string) Module

FindModule 查找指定 ID 的模块实例

func (*Dep) Init

func (d *Dep) Init() error

Init 对所有的模块进行初始化操作

会进行依赖检测。若模块初始化出错,则会中断并返回出错信息。

func (*Dep) InitItem

func (d *Dep) InitItem(tag string) error

InitItem 初始化模块下的子模块

func (*Dep) Inited

func (d *Dep) Inited() bool

Inited 是否已经初始化

func (*Dep) Items

func (d *Dep) Items(mod ...string) map[string][]string

Items 返回所有的子模块名称

键名为模块名称,键值为该模块下的子模块列表。

func (*Dep) Modules

func (d *Dep) Modules() []Module

Modules 模块列表

func (*Dep) NewItem

func (d *Dep) NewItem(name string) *Dep

NewItem 声明指定名称的 *Dep

type Module

type Module interface {
	// 模块的唯一
	ID() string

	// 当前模块依赖的其它模块 ID
	Deps() []string

	// 对该模块进行初始化操作
	Init(*log.Logger) error

	// 当前模块是否已经被初始化
	Inited() bool
}

Module 需要处理依赖关系的模块需要实现的接口

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL