initialize

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Apr 23, 2024 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var DaoFieldType = reflect.TypeOf((*DaoField)(nil)).Elem()
View Source
var EmbeddedPresetsType = reflect.TypeOf((*EmbeddedPresets)(nil)).Elem()

Functions

func GetConfig

func GetConfig[T any]() *T

func GetDao added in v1.2.1

func GetDao[T any]() *T

func GlobalConfig

func GlobalConfig() *globalConfig

func ParseTagSetting

func ParseTagSetting(str string, sep string, settings any)

ParseTagSetting default sep ;

func RegisterDeferFunc added in v1.2.1

func RegisterDeferFunc(deferf ...func())

func Start

func Start(conf Config, dao Dao, configCenter ...conf_center.ConfigCenter) func()

Types

type BasicConfig

type BasicConfig struct {
	// 模块名
	Module string `flag:"name:mod;short:m;default:cherry-app;usage:模块名;env:MODULE" json:"module,omitempty"`
	// environment
	Env string `flag:"name:env;short:e;default:dev;usage:环境;env:ENV" json:"env,omitempty"`
}

BasicConfig zh: 基本配置,包含模块名

type CloseFunc

type CloseFunc func() error

type Config

type Config interface {
	// 注入之前设置默认值
	InitBeforeInject
	// 注入之后初始化
	InitAfterInject
}

type Dao

type Dao interface {
	InitBeforeInject
	// 注入config后执行
	InitAfterInjectConfig()
	// 注入dao后执行
	InitAfterInject
}

type DaoConfig

type DaoConfig[D any] interface {
	Build() (*D, CloseFunc)
}

type DaoEntity

type DaoEntity[C DaoConfig[D], D any] struct {
	Conf   C
	Client *D
	// contains filtered or unexported fields
}

func (*DaoEntity[C, D]) Close

func (d *DaoEntity[C, D]) Close() error

func (*DaoEntity[C, D]) Config

func (d *DaoEntity[C, D]) Config() any

func (*DaoEntity[C, D]) SetEntity

func (d *DaoEntity[C, D]) SetEntity()

type DaoField

type DaoField interface {
	Config() any
	SetEntity()
	io.Closer
}

type DaoFieldCloser

type DaoFieldCloser interface {
	Close()
}

type DaoFieldCloserWithError

type DaoFieldCloserWithError = io.Closer

TODO

type EmbeddedPresets

type EmbeddedPresets struct {
}

func (EmbeddedPresets) InitAfterInject

func (u EmbeddedPresets) InitAfterInject()

func (EmbeddedPresets) InitAfterInjectConfig

func (u EmbeddedPresets) InitAfterInjectConfig()

func (EmbeddedPresets) InitBeforeInject

func (u EmbeddedPresets) InitBeforeInject()

type EnvConfig

type EnvConfig struct {
	Debug             bool   `flag:"name:debug;short:d;default:debug;usage:是否测试;env:DEBUG" json:"debug" toml:"debug"`
	ConfigTemplateDir string `flag:"name:conf_tmpl_dir;short:t;usage:是否生成配置模板;env:CONFIG_TEMPLATE_DIR" json:"config_template_dir"`
	// 代理, socks5://localhost:1080
	Proxy    string `flag:"name:proxy;short:p;default:'socks5://localhost:1080';usage:代理;env:HTTP_PROXY" json:"proxy"`
	NoInject []string
	// config字段顺序不能变,ConfigCenter 保持在最后
	ConfigCenter conf_center.Config `init:"fixed"`
}

type FileConfig

type FileConfig struct {
	// 模块名
	BasicConfig
	EnvConfig *EnvConfig `init:"fixed"`
}

FileConfig unused example 配置文件映射结构体,每个启动都有一个必要的配置文件,用于初始化基本配置及配置中心配置

type FlagTagSettings

type FlagTagSettings struct {
	Name    string `meta:"name"`
	Short   string `meta:"short"`
	Env     string `meta:"env" explain:"从环境变量读取"`
	Default string `meta:"default"`
	Usage   string `meta:"usage"`
}

type InitAfterInject

type InitAfterInject interface {
	InitAfterInject()
}

type InitAfterInjectConfig

type InitAfterInjectConfig interface {
	InitAfterInjectConfig()
}

type InitBeforeInject

type InitBeforeInject interface {
	InitBeforeInject()
}

type InitTagSettings

type InitTagSettings struct {
	ConfigName   string `meta:"config"`
	DefaultValue string `meta:"default"`
}

func ParseInitTagSettings

func ParseInitTagSettings(str string) *InitTagSettings

type Marshal

type Marshal = func(any) ([]byte, error)

type SingleFileConfig added in v1.2.5

type SingleFileConfig struct {
	BasicConfig `yaml:",inline"`
	EnvConfig   `yaml:",inline"`
}

SingleFileConfig This is for illustrative purposes only and is not for practical use

type Unmarshal

type Unmarshal = func([]byte, any) error

Jump to

Keyboard shortcuts

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