// Code generated by enumgen. DO NOT EDIT. package tasks import ( "database/sql/driver" "encoding/json" "fmt" ) type Outcome struct{ val string } var ( OutcomeUnknown = Outcome{} OutcomeCompleted = Outcome{"Completed"} OutcomeFailed = Outcome{"Failed"} OutcomeRetry = Outcome{"Retry"} ) var allOutcome = []Outcome{ OutcomeUnknown, OutcomeCompleted, OutcomeFailed, OutcomeRetry, } var outcomeByVal = map[string]Outcome{ "": OutcomeUnknown, "Completed": OutcomeCompleted, "Failed": OutcomeFailed, "Retry": OutcomeRetry, } func ParseOutcome(s string) (Outcome, error) { v, ok := outcomeByVal[s] if !ok { return Outcome{}, fmt.Errorf("invalid Outcome %q", s) } return v, nil } func (s Outcome) Valid() bool { _, ok := outcomeByVal[s.val]; return ok } func (s Outcome) Values() []Outcome { return allOutcome } func (s Outcome) String() string { return s.val } func (s Outcome) FilterValues() []string { strs := make([]string, len(allOutcome)-1) for i, v := range allOutcome[1:] { strs[i] = v.String() } return strs } func (s Outcome) MarshalJSON() ([]byte, error) { return json.Marshal(s.val) } func (s *Outcome) UnmarshalJSON(b []byte) error { var str string if err := json.Unmarshal(b, &str); err != nil { return err } v, err := ParseOutcome(str) if err != nil { return err } *s = v return nil } func (s Outcome) Value() (driver.Value, error) { return s.val, nil } func (s *Outcome) Scan(src any) error { str, ok := src.(string) if !ok { return fmt.Errorf("Outcome.Scan: expected string, got %T", src) } v, err := ParseOutcome(str) if err != nil { return err } *s = v return nil }