MarshalJSON makes Val satisfy the json.Marshaler interface.
()
| 726 | |
| 727 | // MarshalJSON makes Val satisfy the json.Marshaler interface. |
| 728 | func (v Val) MarshalJSON() ([]byte, error) { |
| 729 | switch v.Tid { |
| 730 | case IntID: |
| 731 | return json.Marshal(v.Value.(int64)) |
| 732 | case BoolID: |
| 733 | return json.Marshal(v.Value.(bool)) |
| 734 | case FloatID: |
| 735 | return json.Marshal(v.Value.(float64)) |
| 736 | case DateTimeID: |
| 737 | return json.Marshal(v.Value.(time.Time)) |
| 738 | case GeoID: |
| 739 | return geojson.Marshal(v.Value.(geom.T)) |
| 740 | case BigFloatID: |
| 741 | value := v.Value.(big.Float) |
| 742 | return value.MarshalText() |
| 743 | case StringID, DefaultID: |
| 744 | return json.Marshal(v.Safe().(string)) |
| 745 | case PasswordID: |
| 746 | return json.Marshal(v.Value.(string)) |
| 747 | } |
| 748 | return nil, errors.Errorf("invalid type for MarshalJSON: %v", v.Tid) |
| 749 | } |
no test coverage detected