.UnmarshalJSON()
parent
cb749d3510
commit
d6b2890eaa
|
@ -10,11 +10,11 @@ var _ json.Unmarshaler = new(Optional[string])
|
||||||
|
|
||||||
// UnmarshalJSON makes it so json.Unmarshaler is implemented.
|
// UnmarshalJSON makes it so json.Unmarshaler is implemented.
|
||||||
func (receiver *Optional[T]) UnmarshalJSON(data []byte) error {
|
func (receiver *Optional[T]) UnmarshalJSON(data []byte) error {
|
||||||
switch interface{}(receiver.value).(type) {
|
switch interface{}(&receiver.value).(type) {
|
||||||
case bool, string, json.Unmarshaler:
|
case *bool, *string, json.Unmarshaler:
|
||||||
// these are OK.
|
// these are OK.
|
||||||
default:
|
default:
|
||||||
return fmt.Errorf("cannot unmarshal into something of type %T from JSON because parameterized type is ‘%T’ rather than ‘bool’, ‘string’, or ‘json.Unmarshaler’", receiver, receiver.value)
|
return fmt.Errorf("cannot unmarshal into something of type %T from JSON because pointer to parameterized type is ‘%T’ rather than ‘*bool’, ‘*string’, or ‘json.Unmarshaler’", receiver, &receiver.value)
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue