You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

30 lines
659 B

package commands
import (
"fmt"
"git.aiterp.net/lucifer3/server/device"
"strings"
)
type SetState struct {
ID string
State device.State
}
func (c SetState) Matches(driver string) (sub string, ok bool) {
if strings.HasPrefix(c.ID, driver) && strings.HasPrefix(c.ID[len(driver):], ":") {
return strings.SplitN(c.ID[len(driver)+1:], ":", 2)[0], true
} else {
return "", false
}
}
func (c SetState) CommandDescription() string {
return fmt.Sprintf("SetStates(%s, %s)", c.ID, c.State)
}
type SetStateBatch map[string]device.State
func (c SetStateBatch) CommandDescription() string {
return fmt.Sprintf("SetStateBatch(%d devices)", len(c))
}