package dto import ( "bytes" "encoding/json" ) type TokenEndpointAuthMethod int const ( None TokenEndpointAuthMethod = iota ClientSecretPost ClientSecretBasic ) var toString = map[TokenEndpointAuthMethod]string{ None: "none", ClientSecretPost: "client_secret_post", ClientSecretBasic: "client_secret_basic", } var toID = map[string]TokenEndpointAuthMethod{ "none": None, "client_secret_post": ClientSecretPost, "client_secret_basic": ClientSecretBasic, } func (x TokenEndpointAuthMethod) MarshalJSON() ([]byte, error) { buffer := bytes.NewBufferString(`"`) buffer.WriteString(toString[x]) buffer.WriteString(`"`) return buffer.Bytes(), nil } func (x *TokenEndpointAuthMethod) UnmarshalJSON(b []byte) error { var val string if err := json.Unmarshal(b, &val); err != nil { return err } *x = toID[val] return nil } func (x TokenEndpointAuthMethod) String() string { return toString[x] }