plugins

package
v3.7.7 Latest Latest
Warning

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

Go to latest
Published: Feb 19, 2026 License: MIT Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Author

type Author struct {
	Name    string `json:"name"`
	Contact string `json:"contact,omitempty"`
}

type Func

type Func func(context.Context, ...any) (any, error)

Func is the canonical function signature for plugins.

type FuncSpec

type FuncSpec struct {
	Name        string
	Fn          any
	Description string
	Group       string
	Decorates   string
	Replacement string
}

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 SpecList

type SpecList []FuncSpec

func (SpecList) Specs

func (s SpecList) Specs() []FuncSpec

type SpecProvider

type SpecProvider interface {
	Specs() []FuncSpec
}

func Specs

func Specs(specs ...FuncSpec) SpecProvider

Jump to

Keyboard shortcuts

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