🔨 Refactor method 'UnmarshalJSON' of 'option[T]'

This commit is contained in:
2024-11-28 04:20:01 +04:00
parent 2e6110e54a
commit d392d4a787
2 changed files with 9 additions and 4 deletions

View File

@ -65,12 +65,17 @@ func (o *option[T]) SetNone() {
}
func (o *option[T]) UnmarshalJSON(data []byte) error {
if string(data) == "null" {
o.none = true
if string(data) == "null" || len(data) == 0 {
o.SetNone()
return nil
}
if err := json.Unmarshal(data, &o.value); err != nil {
o.SetNone()
return err
}
o.none = false
return json.Unmarshal(data, &o.value)
return nil
}
func NewOption[T NonNilT](value T) *option[T] {