Files
Cyrene_v2/internal/capability/skills/register.go
T

29 lines
851 B
Go

package skills
import (
"fmt"
"git.yeij.top/AskaEth/Cyrene_v2/internal/capability/registry"
"git.yeij.top/AskaEth/Cyrene_v2/pkg/plugins/sdk"
)
// Register publishes list into reg as KindSkill capabilities so they become
// globally available to every character and mode. It returns ErrNilRegistrar
// when reg is nil, ErrInvalidSkill when a skill is nil, and the registry's error
// (for example registry.ErrDuplicate) on the first failed registration; earlier
// skills in list stay registered.
func Register(reg *registry.Registry, list ...sdk.Skill) error {
if reg == nil {
return ErrNilRegistrar
}
for _, s := range list {
if s == nil {
return fmt.Errorf("skills: register: %w", ErrInvalidSkill)
}
if err := reg.RegisterSkill(s); err != nil {
return fmt.Errorf("skills: register %q: %w", s.Name(), err)
}
}
return nil
}