watchtower/pkg/session/trigger.go

35 lines
637 B
Go
Raw Normal View History

2021-06-27 15:30:23 +02:00
package session
import "strings"
type Trigger int
const (
SchedulerTrigger Trigger = iota
APITrigger
StartupTrigger
)
// String returns a string representation of the Trigger
func (trigger Trigger) String() string {
switch trigger {
case SchedulerTrigger:
return "Scheduler"
case APITrigger:
return "API"
case StartupTrigger:
return "Startup"
default:
return "Unknown"
}
}
// MarshalJSON marshals Trigger as a quoted string
func (trigger Trigger) MarshalJSON() ([]byte, error) {
sb := strings.Builder{}
sb.WriteString(`"`)
sb.WriteString(trigger.String())
sb.WriteString(`"`)
return []byte(sb.String()), nil
}