config

package
v2.0.0 Latest Latest
Warning

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

Go to latest
Published: Dec 4, 2023 License: Apache-2.0 Imports: 23 Imported by: 0

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 GetConfigurator

func GetConfigurator() configurator.Configurator

GetConfigurator 获取配置器

func Has

func Has(pattern string) bool

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

func Load

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

Load 加载配置项

func Match

func Match(patterns ...string) configurator.Matcher

Match 匹配多个规则

func NewConfigurator

func NewConfigurator(sources ...configurator.Source) configurator.Configurator

NewConfigurator 新建配置器

func Set

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

Set 设置配置值

func SetConfigurator

func SetConfigurator(configurator configurator.Configurator)

SetConfigurator 设置配置器

func SetDefaultConfigurator

func SetDefaultConfigurator()

func SetSource

func SetSource(sources ...configurator.Source)

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

func Store

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

Store 保存配置项

func Watch

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

Watch 设置监听回调

Types

type Configuration

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

Configuration 配置项

func (*Configuration) Decode

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

Decode 解码

func (*Configuration) Scan

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

Scan 扫描

type Configurator

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 NewConfigurator

func NewConfigurator(opts ...Option) Configurator

type Decoder

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

type Encoder

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

type Matcher

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

type Mode

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

type Option

type Option func(o *options)

func WithContext

func WithContext(ctx context.Context) Option

WithContext 设置上下文

func WithDecoder

func WithDecoder(decoder Decoder) Option

WithDecoder 设置解码器

func WithEncoder

func WithEncoder(encoder Encoder) Option

WithEncoder 设置编码器

func WithSources

func WithSources(sources ...Source) Option

WithSources 设置配置源

type Scanner

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

type Source

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

type WatchCallbackFunc func(names ...string)

type Watcher

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