| package test |
| |
| import ( |
| "encoding" |
| "encoding/json" |
| ) |
| |
| func init() { |
| jm := json.Marshaler(jmOfStruct{}) |
| tm1 := encoding.TextMarshaler(tmOfStruct{}) |
| tm2 := encoding.TextMarshaler(&tmOfStructInt{}) |
| marshalCases = append(marshalCases, |
| jmOfStruct{}, |
| &jm, |
| tmOfStruct{}, |
| &tm1, |
| tmOfStructInt{}, |
| &tm2, |
| map[tmOfStruct]int{ |
| {}: 100, |
| }, |
| map[*tmOfStruct]int{ |
| {}: 100, |
| }, |
| map[encoding.TextMarshaler]int{ |
| tm1: 100, |
| }, |
| ) |
| unmarshalCases = append(unmarshalCases, unmarshalCase{ |
| ptr: (*tmOfMap)(nil), |
| input: `"{1:2}"`, |
| }, unmarshalCase{ |
| ptr: (*tmOfMapPtr)(nil), |
| input: `"{1:2}"`, |
| }) |
| } |
| |
| type jmOfStruct struct { |
| F2 chan []byte |
| } |
| |
| func (q jmOfStruct) MarshalJSON() ([]byte, error) { |
| return []byte(`""`), nil |
| } |
| |
| func (q *jmOfStruct) UnmarshalJSON(value []byte) error { |
| return nil |
| } |
| |
| type tmOfStruct struct { |
| F2 chan []byte |
| } |
| |
| func (q tmOfStruct) MarshalText() ([]byte, error) { |
| return []byte(`""`), nil |
| } |
| |
| func (q *tmOfStruct) UnmarshalText(value []byte) error { |
| return nil |
| } |
| |
| type tmOfStructInt struct { |
| Field2 int |
| } |
| |
| func (q *tmOfStructInt) MarshalText() ([]byte, error) { |
| return []byte(`"abc"`), nil |
| } |
| |
| func (q *tmOfStructInt) UnmarshalText(value []byte) error { |
| return nil |
| } |
| |
| type tmOfMap map[int]int |
| |
| func (q tmOfMap) UnmarshalText(value []byte) error { |
| return nil |
| } |
| |
| type tmOfMapPtr map[int]int |
| |
| func (q *tmOfMapPtr) UnmarshalText(value []byte) error { |
| return nil |
| } |