Continue the implementation of trigger rules (ex scene rules)

This commit is contained in:
Dmitrii Okunev
2024-10-17 21:52:28 +01:00
parent fb33738f1c
commit d17944c0dd
45 changed files with 5077 additions and 1748 deletions

View File

@@ -0,0 +1,27 @@
package eventquery
import (
"github.com/xaionaro-go/streamctl/pkg/serializable"
"github.com/xaionaro-go/streamctl/pkg/streamd/config/event"
)
func init() {
serializable.RegisterType[EventType[event.WindowFocusChange]]()
}
type EventQuery interface {
Match(event.Event) bool
}
type Event serializable.Serializable[event.Event]
func (ev Event) Match(cmp event.Event) bool {
return ev.Value == cmp
}
type EventType[T event.Event] struct{}
func (EventType[T]) Match(ev event.Event) bool {
_, ok := ev.(T)
return ok
}