Merge 465b153cfd into 7058b320c2
				
					
				
			This commit is contained in:
		
						commit
						ab3ed1d361
					
				
					 5 changed files with 142 additions and 7 deletions
				
			
		|  | @ -21,6 +21,14 @@ import ( | |||
| 	"strings" | ||||
| ) | ||||
| 
 | ||||
| type TestCasing int | ||||
| 
 | ||||
| const ( | ||||
| 	caseMadnessA TestCasing = iota | ||||
| 	caseMaDnEEsB | ||||
| 	normalCaseExample | ||||
| ) | ||||
| 
 | ||||
| //go:generate jsonenums -type=ShirtSize | ||||
| 
 | ||||
| type ShirtSize byte | ||||
|  |  | |||
							
								
								
									
										78
									
								
								example/testcasing_jsonenums.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								example/testcasing_jsonenums.go
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,78 @@ | |||
| // generated by jsonenums -type=TestCasing; DO NOT EDIT | ||||
| 
 | ||||
| package main | ||||
| 
 | ||||
| import ( | ||||
| 	"database/sql/driver" | ||||
| 	"encoding/json" | ||||
| 	"fmt" | ||||
| 
 | ||||
| 	"github.com/pkg/errors" | ||||
| ) | ||||
| 
 | ||||
| var ( | ||||
| 	_TestCasingNameToValue = map[string]TestCasing{ | ||||
| 		"case_madness_a":      caseMadnessA, | ||||
| 		"case_ma_dn_e_es_b":   caseMaDnEEsB, | ||||
| 		"normal_case_example": normalCaseExample, | ||||
| 	} | ||||
| 
 | ||||
| 	_TestCasingValueToName = map[TestCasing]string{ | ||||
| 		caseMadnessA:      "case_madness_a", | ||||
| 		caseMaDnEEsB:      "case_ma_dn_e_es_b", | ||||
| 		normalCaseExample: "normal_case_example", | ||||
| 	} | ||||
| ) | ||||
| 
 | ||||
| func init() { | ||||
| 	var v TestCasing | ||||
| 	if _, ok := interface{}(v).(fmt.Stringer); ok { | ||||
| 		_TestCasingNameToValue = map[string]TestCasing{ | ||||
| 			interface{}(caseMadnessA).(fmt.Stringer).String():      caseMadnessA, | ||||
| 			interface{}(caseMaDnEEsB).(fmt.Stringer).String():      caseMaDnEEsB, | ||||
| 			interface{}(normalCaseExample).(fmt.Stringer).String(): normalCaseExample, | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| // MarshalJSON is generated so TestCasing satisfies json.Marshaler. | ||||
| func (r TestCasing) MarshalJSON() ([]byte, error) { | ||||
| 	if s, ok := interface{}(r).(fmt.Stringer); ok { | ||||
| 		return json.Marshal(s.String()) | ||||
| 	} | ||||
| 	s, ok := _TestCasingValueToName[r] | ||||
| 	if !ok { | ||||
| 		return nil, fmt.Errorf("invalid TestCasing: %d", r) | ||||
| 	} | ||||
| 	return json.Marshal(s) | ||||
| } | ||||
| 
 | ||||
| // UnmarshalJSON is generated so TestCasing satisfies json.Unmarshaler. | ||||
| func (r *TestCasing) UnmarshalJSON(data []byte) error { | ||||
| 	var s string | ||||
| 	if err := json.Unmarshal(data, &s); err != nil { | ||||
| 		return fmt.Errorf("TestCasing should be a string, got %s", data) | ||||
| 	} | ||||
| 	v, ok := _TestCasingNameToValue[s] | ||||
| 	if !ok { | ||||
| 		return fmt.Errorf("invalid TestCasing %q", s) | ||||
| 	} | ||||
| 	*r = v | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| //Scan an input string into this structure for use with GORP | ||||
| func (r *TestCasing) Scan(i interface{}) error { | ||||
| 	switch i.(type) { | ||||
| 	case string: | ||||
| 		r.UnmarshalJSON([]byte(i.(string))) | ||||
| 	default: | ||||
| 		return errors.Errorf("Can't scan %T into type %T", i, r) | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
| 
 | ||||
| func (r TestCasing) Value() (driver.Value, error) { | ||||
| 	bytes, err := r.MarshalJSON() | ||||
| 	return string(bytes), err | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Benjamin Trapani
						Benjamin Trapani