.UnmarshalJSON()

master
Charles Iliya Krempeaux 2023-09-25 07:04:29 +09:00
parent cb749d3510
commit d6b2890eaa
1 changed files with 3 additions and 3 deletions

View File

@ -10,11 +10,11 @@ var _ json.Unmarshaler = new(Optional[string])
// UnmarshalJSON makes it so json.Unmarshaler is implemented.
func (receiver *Optional[T]) UnmarshalJSON(data []byte) error {
switch interface{}(receiver.value).(type) {
case bool, string, json.Unmarshaler:
switch interface{}(&receiver.value).(type) {
case *bool, *string, json.Unmarshaler:
// these are OK.
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)
}
{