How to create a registry
File Naming Conventions
Creating a Registry
package ownregistry
import (
"github.com/go-sprout/sprout"
)
// OwnRegistry struct implements the Registry interface, embedding the Handler to access shared functionalities.
type OwnRegistry struct {
handler sprout.Handler // Embedding Handler for shared functionality
}
// NewRegistry initializes and returns a new instance of your registry.
func NewRegistry() *OwnRegistry {
return &OwnRegistry{}
}
// UID provides a unique identifier for your registry.
func (or *OwnRegistry) UID() string {
return "organization/repo.ownregistry" // Ensure this identifier is unique and uses lowercase, prefixed by your handler/repo separated with a dot.
}
// LinkHandler connects the Handler to your registry, enabling runtime functionalities.
func (or *OwnRegistry) LinkHandler(fh sprout.Handler) error {
or.handler = fh
return nil
}
// RegisterFunctions adds the provided functions into the given function map.
// This method is called by an Handler to register all functions of a registry.
func (or *OwnRegistry) RegisterFunctions(funcsMap sprout.FunctionMap) error {
// Example of registering a function
sprout.AddFunction(funcsMap, "yourFunction", or.YourFunction)
return nil
}
// OPTIONAL: Your registry don't needs to register aliases to work.
// RegisterAliases adds the provided aliases into the given alias map.
// method is called by an Handler to register all aliases of a registry.
func (or *OwnRegistry) RegisterAliases(aliasMap sprout.FunctionAliasMap) error {
// Example of registering an alias
sprout.AddAlias(aliasMap, "yourFunction", "yourAlias")
return nil
}Last updated