/
event.go
61 lines (54 loc) · 1.23 KB
/
event.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
54
55
56
57
58
59
60
61
package event
import (
"fmt"
)
// EventType specifies the type of an event sent to the operator
type EventType int
const (
EventTypeRender EventType = iota + 1
EventTypeUpsert
EventTypeDelete
EventTypeUpdate
EventTypeUnknown
)
const (
eventTypeRenderStr = "render"
eventTypeUpsertStr = "upsert"
eventTypeDeleteStr = "delete"
eventTypeUpdateStr = "update"
)
// NewEventType parses an event type specification
func NewEventType(raw string) (EventType, error) {
switch raw {
case eventTypeRenderStr:
return EventTypeRender, nil
case eventTypeUpsertStr:
return EventTypeUpsert, nil
case eventTypeDeleteStr:
return EventTypeDelete, nil
case eventTypeUpdateStr:
return EventTypeUpdate, nil
default:
return EventTypeUnknown, fmt.Errorf("unknown event type: %q", raw)
}
}
// String returns a string representation for an event
func (a EventType) String() string {
switch a {
case EventTypeRender:
return eventTypeRenderStr
case EventTypeUpsert:
return eventTypeUpsertStr
case EventTypeDelete:
return eventTypeDeleteStr
case EventTypeUpdate:
return eventTypeUpdateStr
default:
return "<unknown>"
}
}
// Event defines an event sent to/from the operator
type Event interface {
GetType() EventType
String() string
}