generalize trigger kinds

This commit is contained in:
Christian Schwarz
2023-12-22 14:40:53 +00:00
parent b0caa2d151
commit c8afaf83ab
13 changed files with 168 additions and 57 deletions
+33
View File
@@ -0,0 +1,33 @@
package trigger
import "context"
type Manual struct {
id string
signal chan<- struct{}
}
var _ Trigger = &Manual{}
func NewManual(id string) *Manual {
return &Manual{
id: id,
signal: nil,
}
}
func (t *Manual) ID() string {
return t.id
}
func (t *Manual) run(ctx context.Context, signal chan<- struct{}) {
if t.signal != nil {
panic("run must only be called once")
}
t.signal = signal
}
// Panics if called before the trigger has been spanwed as part of a `Triggers`.
func (t *Manual) Fire() {
t.signal <- struct{}{}
}