Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type FunctionInfo ¶
type FunctionInfo struct {
Name string `json:"name"`
Description string `json:"description,omitempty"`
Group string `json:"group,omitempty"`
Decorates string `json:"decorates,omitempty"`
DecoratesPlugin string `json:"decoratesPlugin,omitempty"`
Replacement string `json:"replacement,omitempty"`
Deactivated bool `json:"deactivated,omitempty"`
}
type Plugin ¶
type Plugin interface {
Info() PluginInfo
Providers() []SpecProvider
}
func NewPlugin ¶
func NewPlugin(info PluginInfo, providers ...SpecProvider) Plugin
type PluginInfo ¶
type PluginInfo struct {
Name string `json:"name"`
Version string `json:"version,omitempty"`
Source string `json:"source,omitempty"`
Authors []Author `json:"authors,omitempty"`
Description string `json:"description,omitempty"`
Depends []string `json:"depends,omitempty"`
Kind string `json:"kind,omitempty"`
Capabilities []string `json:"capabilities,omitempty"`
}
type PluginWithFuncs ¶
type PluginWithFuncs struct {
Plugin PluginInfo `json:"plugin"`
Funcs []FunctionInfo `json:"funcs"`
}
type Registry ¶
type Registry interface {
AddPlugin(info PluginInfo, providers []SpecProvider)
Funcs() map[string]any
Plugins(ctx context.Context) []PluginInfo
Groups(ctx context.Context) []PluginWithFuncs
// Hooks returns functions whose Group equals the provided name.
Hooks(group string) []Func
}
type SpecProvider ¶
type SpecProvider interface {
Specs() []FuncSpec
}
func Specs ¶
func Specs(specs ...FuncSpec) SpecProvider
Click to show internal directories.
Click to hide internal directories.