config

package
v2.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 5, 2024 License: MIT Imports: 19 Imported by: 4

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Close

func Close()

Close 关闭配置监听

func Get

func Get(pattern string, def ...interface{}) value.Value

Get 获取配置值

func Has

func Has(pattern string) bool

Has 检测多个匹配规则中是否存在配置

func Set

func Set(pattern string, value interface{}) error

Set 设置配置值

func SetConfigurator

func SetConfigurator(configurator Configurator)

SetConfigurator 设置配置器

func SetConfiguratorWithSources added in v2.1.0

func SetConfiguratorWithSources(sources ...Source)

SetConfiguratorWithSources 通过设置配置源来设置配置器

func Store

func Store(ctx context.Context, source string, file string, content interface{}, override ...bool) error

Store 保存配置项

func Watch

func Watch(cb WatchCallbackFunc, names ...string)

Watch 设置监听回调

Types

type Configuration added in v2.1.0

type Configuration struct {
	Path     string // 文件路径
	File     string // 文件全称
	Name     string // 文件名称
	Format   string // 文件格式
	Content  []byte // 文件内容
	FullPath string // 文件全路径
	// contains filtered or unexported fields
}

Configuration 配置项

func Load

func Load(ctx context.Context, source string, file ...string) ([]*Configuration, error)

Load 加载配置项

func (*Configuration) Decode added in v2.1.0

func (c *Configuration) Decode() (interface{}, error)

Decode 解码

func (*Configuration) Scan added in v2.1.0

func (c *Configuration) Scan(dest interface{}) error

Scan 扫描

type Configurator added in v2.1.0

type Configurator interface {
	// Has 检测多个匹配规则中是否存在配置
	Has(pattern string) bool
	// Get 获取配置值
	Get(pattern string, def ...interface{}) value.Value
	// Set 设置配置值
	Set(pattern string, value interface{}) error
	// Match 匹配多个规则
	Match(patterns ...string) Matcher
	// Watch 设置监听回调
	Watch(cb WatchCallbackFunc, names ...string)
	// Load 加载配置项
	Load(ctx context.Context, source string, file ...string) ([]*Configuration, error)
	// Store 保存配置项
	Store(ctx context.Context, source string, file string, content interface{}, override ...bool) error
	// Close 关闭配置监听
	Close()
}

func GetConfigurator

func GetConfigurator() Configurator

GetConfigurator 获取配置器

func NewConfigurator

func NewConfigurator(opts ...Option) Configurator

type Decoder added in v2.1.0

type Decoder func(format string, content []byte) (interface{}, error)

type Encoder added in v2.1.0

type Encoder func(format string, content interface{}) ([]byte, error)

type Matcher added in v2.1.0

type Matcher interface {
	// Has 检测多个匹配规则中是否存在配置
	Has() bool
	// Get 获取配置值
	Get(def ...interface{}) value.Value
	// Scan 扫描读取配置值
	Scan(dest interface{}) error
}

func Match

func Match(patterns ...string) Matcher

Match 匹配多个规则

type Mode added in v2.1.0

type Mode string
const (
	ReadOnly  Mode = "read-only"  // 只读
	WriteOnly Mode = "write-only" // 只写
	ReadWrite Mode = "read-write" // 读写
)

type Option added in v2.1.0

type Option func(o *options)

func WithContext added in v2.1.0

func WithContext(ctx context.Context) Option

WithContext 设置上下文

func WithDecoder added in v2.1.0

func WithDecoder(decoder Decoder) Option

WithDecoder 设置解码器

func WithEncoder added in v2.1.0

func WithEncoder(encoder Encoder) Option

WithEncoder 设置编码器

func WithSources added in v2.1.0

func WithSources(sources ...Source) Option

WithSources 设置配置源

type Scanner added in v2.1.0

type Scanner func(format string, content []byte, dest interface{}) error

type Source added in v2.1.0

type Source interface {
	// Name 配置源名称
	Name() string
	// Load 加载配置项
	Load(ctx context.Context, file ...string) ([]*Configuration, error)
	// Store 保存配置项
	Store(ctx context.Context, file string, content []byte) error
	// Watch 监听配置项
	Watch(ctx context.Context) (Watcher, error)
	// Close 关闭配置源
	Close() error
}

type WatchCallbackFunc added in v2.1.0

type WatchCallbackFunc func(names ...string)

type Watcher added in v2.1.0

type Watcher interface {
	// Next 返回配置列表
	Next() ([]*Configuration, error)
	// Stop 停止监听
	Stop() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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