// Code generated by "enumer -type=SnapState -json"; DO NOT EDIT. // package pruner import ( "encoding/json" "fmt" ) const _SnapStateName = "SnapStateInitializedSnapStateKeepingSnapStateDeletePendingSnapStateDeleteAttempted" var _SnapStateIndex = [...]uint8{0, 20, 36, 58, 82} func (i SnapState) String() string { if i < 0 || i >= SnapState(len(_SnapStateIndex)-1) { return fmt.Sprintf("SnapState(%d)", i) } return _SnapStateName[_SnapStateIndex[i]:_SnapStateIndex[i+1]] } var _SnapStateValues = []SnapState{0, 1, 2, 3} var _SnapStateNameToValueMap = map[string]SnapState{ _SnapStateName[0:20]: 0, _SnapStateName[20:36]: 1, _SnapStateName[36:58]: 2, _SnapStateName[58:82]: 3, } // SnapStateString retrieves an enum value from the enum constants string name. // Throws an error if the param is not part of the enum. func SnapStateString(s string) (SnapState, error) { if val, ok := _SnapStateNameToValueMap[s]; ok { return val, nil } return 0, fmt.Errorf("%s does not belong to SnapState values", s) } // SnapStateValues returns all values of the enum func SnapStateValues() []SnapState { return _SnapStateValues } // IsASnapState returns "true" if the value is listed in the enum definition. "false" otherwise func (i SnapState) IsASnapState() bool { for _, v := range _SnapStateValues { if i == v { return true } } return false } // MarshalJSON implements the json.Marshaler interface for SnapState func (i SnapState) MarshalJSON() ([]byte, error) { return json.Marshal(i.String()) } // UnmarshalJSON implements the json.Unmarshaler interface for SnapState func (i *SnapState) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { return fmt.Errorf("SnapState should be a string, got %s", data) } var err error *i, err = SnapStateString(s) return err }