From 1fb6970d5aaad64cf51b64848d6abf81271df2fc Mon Sep 17 00:00:00 2001 From: Levente Batuska Date: Sat, 4 Jan 2025 01:32:46 +0100 Subject: [PATCH] fix(Type): fix Scan for Optional, time parsing now can return the error correctly --- type/optional.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/type/optional.go b/type/optional.go index 4cb2552..ac2cf77 100644 --- a/type/optional.go +++ b/type/optional.go @@ -224,12 +224,16 @@ func (opt *Optional[T]) scanTimeSpecial(src interface{}) Optional[error] { if err == nil { *v = parsedTime goto ok + } else { + return Some(err) } case *[]byte: parsedTime, err := time.Parse(time.RFC3339, string(*t)) if err == nil { *v = parsedTime goto ok + } else { + return Some(err) } } case time.Time: @@ -239,12 +243,16 @@ func (opt *Optional[T]) scanTimeSpecial(src interface{}) Optional[error] { if err == nil { reflect.ValueOf(&opt.value).Elem().Set(reflect.ValueOf(parsedTime)) goto ok + } else { + return Some(err) } case *[]byte: parsedTime, err := time.Parse(time.RFC3339, string(*t)) if err == nil { reflect.ValueOf(&opt.value).Elem().Set(reflect.ValueOf(parsedTime)) goto ok + } else { + return Some(err) } }