From a77ef8d8e573450f09553e1fb382214d39121731 Mon Sep 17 00:00:00 2001 From: Francesc Campoy Date: Wed, 4 Feb 2015 13:40:08 +0000 Subject: [PATCH] Updated generated code in example --- example/shirtsize_jsonenums.go | 49 ++++++++++++++++++++---------- example/weekday_jsonenums.go | 54 ++++++++++++++++++++++++---------- 2 files changed, 72 insertions(+), 31 deletions(-) diff --git a/example/shirtsize_jsonenums.go b/example/shirtsize_jsonenums.go index 41938cb..af60b7e 100644 --- a/example/shirtsize_jsonenums.go +++ b/example/shirtsize_jsonenums.go @@ -7,32 +7,51 @@ import ( "fmt" ) -func (r ShirtSize) MarshalJSON() ([]byte, error) { - if s, ok := interface{}(r).(fmt.Stringer); ok { - return json.Marshal(s.String()) +var ( + _ShirtSizeNameToValue = map[string]ShirtSize{ + "NA": NA, + "XS": XS, + "S": S, + "M": M, + "L": L, + "XL": XL, } - s, ok := map[ShirtSize]string{ - NA: "NA", XS: "XS", S: "S", M: "M", L: "L", XL: "XL", - }[r] - if !ok { - return nil, fmt.Errorf("invalid ShirtSize: %d", r) - } - return json.Marshal(s) -} -var _ShirtSizeNameToValue = map[string]ShirtSize{ - "NA": NA, "XS": XS, "S": S, "M": M, "L": L, "XL": XL, -} + _ShirtSizeValueToName = map[ShirtSize]string{ + NA: "NA", + XS: "XS", + S: "S", + M: "M", + L: "L", + XL: "XL", + } +) func init() { var v ShirtSize if _, ok := interface{}(v).(fmt.Stringer); ok { _ShirtSizeNameToValue = map[string]ShirtSize{ - interface{}(NA).(fmt.Stringer).String(): NA, interface{}(XS).(fmt.Stringer).String(): XS, interface{}(S).(fmt.Stringer).String(): S, interface{}(M).(fmt.Stringer).String(): M, interface{}(L).(fmt.Stringer).String(): L, interface{}(XL).(fmt.Stringer).String(): XL, + interface{}(NA).(fmt.Stringer).String(): NA, + interface{}(XS).(fmt.Stringer).String(): XS, + interface{}(S).(fmt.Stringer).String(): S, + interface{}(M).(fmt.Stringer).String(): M, + interface{}(L).(fmt.Stringer).String(): L, + interface{}(XL).(fmt.Stringer).String(): XL, } } } +func (r ShirtSize) MarshalJSON() ([]byte, error) { + if s, ok := interface{}(r).(fmt.Stringer); ok { + return json.Marshal(s.String()) + } + s, ok := _ShirtSizeValueToName[r] + if !ok { + return nil, fmt.Errorf("invalid ShirtSize: %d", r) + } + return json.Marshal(s) +} + func (r *ShirtSize) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { diff --git a/example/weekday_jsonenums.go b/example/weekday_jsonenums.go index 6353c21..c24d250 100644 --- a/example/weekday_jsonenums.go +++ b/example/weekday_jsonenums.go @@ -1,4 +1,4 @@ -// generated by jsonenums -type=WeekDay example; DO NOT EDIT +// generated by jsonenums -type=WeekDay; DO NOT EDIT package main @@ -7,32 +7,54 @@ import ( "fmt" ) -func (r WeekDay) MarshalJSON() ([]byte, error) { - if s, ok := interface{}(r).(fmt.Stringer); ok { - return json.Marshal(s.String()) +var ( + _WeekDayNameToValue = map[string]WeekDay{ + "Monday": Monday, + "Tuesday": Tuesday, + "Wednesday": Wednesday, + "Thursday": Thursday, + "Friday": Friday, + "Saturday": Saturday, + "Sunday": Sunday, } - s, ok := map[WeekDay]string{ - Monday: "Monday", Tuesday: "Tuesday", Wednesday: "Wednesday", Thursday: "Thursday", Friday: "Friday", Saturday: "Saturday", Sunday: "Sunday", - }[r] - if !ok { - return nil, fmt.Errorf("invalid WeekDay: %d", r) - } - return json.Marshal(s) -} -var _WeekDayNameToValue = map[string]WeekDay{ - "Monday": Monday, "Tuesday": Tuesday, "Wednesday": Wednesday, "Thursday": Thursday, "Friday": Friday, "Saturday": Saturday, "Sunday": Sunday, -} + _WeekDayValueToName = map[WeekDay]string{ + Monday: "Monday", + Tuesday: "Tuesday", + Wednesday: "Wednesday", + Thursday: "Thursday", + Friday: "Friday", + Saturday: "Saturday", + Sunday: "Sunday", + } +) func init() { var v WeekDay if _, ok := interface{}(v).(fmt.Stringer); ok { _WeekDayNameToValue = map[string]WeekDay{ - interface{}(Monday).(fmt.Stringer).String(): Monday, interface{}(Tuesday).(fmt.Stringer).String(): Tuesday, interface{}(Wednesday).(fmt.Stringer).String(): Wednesday, interface{}(Thursday).(fmt.Stringer).String(): Thursday, interface{}(Friday).(fmt.Stringer).String(): Friday, interface{}(Saturday).(fmt.Stringer).String(): Saturday, interface{}(Sunday).(fmt.Stringer).String(): Sunday, + interface{}(Monday).(fmt.Stringer).String(): Monday, + interface{}(Tuesday).(fmt.Stringer).String(): Tuesday, + interface{}(Wednesday).(fmt.Stringer).String(): Wednesday, + interface{}(Thursday).(fmt.Stringer).String(): Thursday, + interface{}(Friday).(fmt.Stringer).String(): Friday, + interface{}(Saturday).(fmt.Stringer).String(): Saturday, + interface{}(Sunday).(fmt.Stringer).String(): Sunday, } } } +func (r WeekDay) MarshalJSON() ([]byte, error) { + if s, ok := interface{}(r).(fmt.Stringer); ok { + return json.Marshal(s.String()) + } + s, ok := _WeekDayValueToName[r] + if !ok { + return nil, fmt.Errorf("invalid WeekDay: %d", r) + } + return json.Marshal(s) +} + func (r *WeekDay) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil {