-
Notifications
You must be signed in to change notification settings - Fork 1
/
event_trigger.go
executable file
·53 lines (43 loc) · 844 Bytes
/
event_trigger.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package zinc
// GroupEvent ...
type GroupEvent uint
const (
// GroupEventAdded ...
GroupEventAdded GroupEvent = iota
// GroupEventDeleted ...
GroupEventDeleted
// GroupEventUpdated ...
GroupEventUpdated
)
// ET ...
type ET interface {
Matcher() M
GroupEvent() GroupEvent
}
type et struct {
m M
e GroupEvent
}
// Matcher ...
func (e *et) Matcher() M {
return e.m
}
// GroupEvent ...
func (e *et) GroupEvent() GroupEvent {
return e.e
}
func newEventTrigger(m M, e GroupEvent) ET {
return &et{m: m, e: e}
}
// Added ...
func Added(keys ...uint) ET {
return newEventTrigger(AllOf(keys...), GroupEventAdded)
}
// Updated ...
func Updated(keys ...uint) ET {
return newEventTrigger(AllOf(keys...), GroupEventUpdated)
}
// Deleted ...
func Deleted(keys ...uint) ET {
return newEventTrigger(AllOf(keys...), GroupEventDeleted)
}