From d6b2890eaa2998135a4ed99bd945b4346d20dde1 Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Mon, 25 Sep 2023 07:04:29 +0900 Subject: [PATCH] .UnmarshalJSON() --- optional_unmarshaljson.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/optional_unmarshaljson.go b/optional_unmarshaljson.go index 164fd4c..51e6a1c 100644 --- a/optional_unmarshaljson.go +++ b/optional_unmarshaljson.go @@ -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) } {