configurator

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: 19 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrInvalidDecoder        = errors.New("invalid decoder")
	ErrNoOperationPermission = errors.New("no operation permission")
	ErrInvalidConfigContent  = errors.New("invalid config content")
	ErrNotFoundConfigSource  = errors.New("not found config source")
)

Functions

This section is empty.

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
}

func NewEmptyMatcher

func NewEmptyMatcher() Matcher

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)
}

type WatchCallbackFunc

type WatchCallbackFunc func(names ...string)

type Watcher

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

Jump to

Keyboard shortcuts

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