func (o *Optional[T]) UnmarshalJSON(data []byte) error {
	*o = None[T]()
	if data == nil || bytes.Equal(data, []byte("null")) {
		*o = Of(*new(T))
		return nil
	}

	if err := json.Unmarshal(data, &o.value); err != nil {
		return err
	}

	o.valid = true
	return nil
}
// UnmarshalJSON implements json.Unmarshaler
UnmarshalJSON implements json.Unmarshaler
// UnmarshalJSON implements json . Unmarshaler
func (o *Optional[T]) UnmarshalJSON(data []byte) error {
	*o = None[T]()
	if data == nil || bytes.Equal(data, []byte("null")) {
		*o = Of(*new(T))
		return nil
	}
	if err := json.Unmarshal(data, &o.value); err != nil {
		return err
	}
	o.valid = true
	return nil
}
func ( o * Optional [ T ] ) UnmarshalJSON ( data [ ] byte ) error { * o = None [ T ] ( ) if data == nil || bytes . Equal ( data , [ ] byte ( " " ) ) { * o = Of ( * new ( T ) ) return nil } if err := json . Unmarshal ( data , & o . value ) ; err != nil { return err } o . valid = true return nil }
UnmarshalJSON implements json.Unmarshaler
UnmarshalJSON implements json . Unmarshaler