Move rule target builders into the correct locations.

This commit is contained in:
Anna Rose Wiggins 2025-08-11 20:53:01 -04:00
parent 9e4062ba30
commit 33b62496a3
17 changed files with 198 additions and 194 deletions

View file

@ -4,6 +4,7 @@ import (
"errors"
"slices"
"git.annabunches.net/annabunches/joyful/internal/configparser"
"git.annabunches.net/annabunches/joyful/internal/logger"
"github.com/holoplot/go-evdev"
)
@ -12,6 +13,14 @@ type RuleTargetModeSelect struct {
Modes []string
}
func NewRuleTargetModeSelectFromConfig(targetConfig configparser.RuleTargetConfigModeSelect, allModes []string) (*RuleTargetModeSelect, error) {
if ok := validateModes(targetConfig.Modes, allModes); !ok {
return nil, errors.New("undefined mode in mode select list")
}
return NewRuleTargetModeSelect(targetConfig.Modes)
}
func NewRuleTargetModeSelect(modes []string) (*RuleTargetModeSelect, error) {
if len(modes) == 0 {
return nil, errors.New("cannot create RuleTargetModeSelect: mode list is empty")