Documentation
¶
Index ¶
- Constants
- func ApplySettingsToStruct(settingsMap map[string]any, target any) error
- type JSONSchema
- type KeyConfig
- func (fi *KeyConfig) AddChangeListener(listener func(context.Context, *Setting, string, any))
- func (fi *KeyConfig) AddSetting(settings ...*Setting) error
- func (fi *KeyConfig) GetAllSettings() map[string]*Setting
- func (fi *KeyConfig) GetFileName() string
- func (fi *KeyConfig) GetSetting(id string) (*Setting, bool)
- func (fi *KeyConfig) GetSummary() string
- func (fi *KeyConfig) GetValue(id string) (any, bool)
- func (fi *KeyConfig) Load() error
- func (fi *KeyConfig) ResetToDefaults(category string)
- func (fi *KeyConfig) Save() error
- func (fi *KeyConfig) SetValue(ctx context.Context, id string, value any) (bool, string)
- type Manager
- func (cm *Manager) AddCoder(format string, coder coder.Coder)
- func (cm *Manager) AddConfig(fi *KeyConfig)
- func (cm *Manager) AddHandler(ty string, handler global.HandlerFunc)
- func (cm *Manager) ForeachHandler(fn func(string, global.HandlerFunc))
- func (cm *Manager) GetConfig(filename string) (*KeyConfig, bool)
- func (cm *Manager) GetHandler(ty string) (global.HandlerFunc, bool)
- func (cm *Manager) Load() error
- func (cm *Manager) LoadConfig(filename, format string) *KeyConfig
- func (cm *Manager) RemoveConfig(filename string)
- func (cm *Manager) RemoveHandler(ty string)
- func (cm *Manager) Save() error
- type Option
- type Setting
- type SettingConstraint
- type SettingOption
- type SettingType
Constants ¶
View Source
const (
CheckSetting = iota + 1<<0
)
Variables ¶
This section is empty.
Functions ¶
Types ¶
type JSONSchema ¶
type JSONSchema struct {
Type string `json:"type"`
Properties map[string]*JSONSchema `json:"properties,omitempty"`
Items *JSONSchema `json:"items,omitempty"` // for array
Description string `json:"description,omitempty"`
Enum []any `json:"enum,omitempty"`
EnumDescriptions map[string]string `json:"x-enum-descriptions,omitempty"` //enum Description 描述(不是标准的json schema)
Minimum *float64 `json:"minimum,omitempty"`
Maximum *float64 `json:"maximum,omitempty"`
Pattern string `json:"pattern,omitempty"`
Required []string `json:"required,omitempty"`
}
type KeyConfig ¶
type KeyConfig struct {
// contains filtered or unexported fields
}
KeyConfig 配置项
func NewConfigFromParent ¶
func (*KeyConfig) AddChangeListener ¶
AddChangeListener 添加配置变更监听器
func (*KeyConfig) AddSetting ¶
AddSetting 添加自定义配置项
func (*KeyConfig) GetAllSettings ¶
GetAllSettings 获取所有配置项
func (*KeyConfig) GetFileName ¶
func (*KeyConfig) GetSetting ¶
GetSetting 获取配置项定义
func (*KeyConfig) ResetToDefaults ¶
ResetToDefaults 重置为默认值
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func NewManager() *Manager
func (*Manager) AddHandler ¶
func (cm *Manager) AddHandler(ty string, handler global.HandlerFunc)
func (*Manager) ForeachHandler ¶
func (cm *Manager) ForeachHandler(fn func(string, global.HandlerFunc))
func (*Manager) GetHandler ¶
func (cm *Manager) GetHandler(ty string) (global.HandlerFunc, bool)
func (*Manager) LoadConfig ¶
func (*Manager) RemoveConfig ¶
func (*Manager) RemoveHandler ¶
type Setting ¶
type Setting struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Type SettingType `json:"type"`
Default any `json:"default"`
Category string `json:"category"`
Options []SettingOption `json:"options,omitempty"`
Constraint SettingConstraint `json:"constraint,omitempty"`
DependsOn []string `json:"depends_on,omitempty"`
Visible bool `json:"visible"`
Array bool `json:"array,omitempty"` // 支持数组和嵌套
ArrayType SettingType `json:"arrayType,omitempty"` // Array=true 时有效
Children []Setting `json:"children,omitempty"` // TypeObject 时递归子字段
Validator func(SettingType, any) (bool, string) `json:"-"`
}
Setting 配置项定义
func SettingsFromJSONSchema ¶
func SettingsFromStruct ¶
func (Setting) MarshalJSON ¶
MarshalJSON 自定义 Setting 的 JSON 序列化
func (Setting) UnmarshalJSON ¶
UnmarshalJSON 自定义 Setting 的 JSON 反序列化
type SettingConstraint ¶
type SettingConstraint struct {
MinValue *float64 `json:"min_value,omitempty"`
MaxValue *float64 `json:"max_value,omitempty"`
Pattern string `json:"pattern,omitempty"`
IsRequired bool `json:"required,omitempty"`
}
SettingConstraint 配置约束
type SettingOption ¶
type SettingOption struct {
Value any `json:"value"`
Label string `json:"label"`
Description string `json:"description,omitempty"`
}
SettingOption 配置选项
type SettingType ¶
type SettingType string
SettingType 配置项类型
const ( TypeBoolean SettingType = "boolean" TypeInteger SettingType = "integer" TypeFloat SettingType = "float" TypeString SettingType = "string" TypeEnum SettingType = "enum" TypeRange SettingType = "range" TypeColor SettingType = "color" TypeObject SettingType = "object" )
Click to show internal directories.
Click to hide internal directories.