mirror of
https://github.com/pocketbase/pocketbase.git
synced 2025-02-07 19:40:31 +02:00
minor types.DateTime optimizations to minimize time.Time value copies
This commit is contained in:
parent
6e6c873cc6
commit
1bf7f148b0
@ -45,10 +45,11 @@ func (d DateTime) IsZero() bool {
|
||||
//
|
||||
// The zero value is serialized to an empty string.
|
||||
func (d DateTime) String() string {
|
||||
if d.IsZero() {
|
||||
t := d.Time()
|
||||
if t.IsZero() {
|
||||
return ""
|
||||
}
|
||||
return d.Time().UTC().Format(DefaultDateLayout)
|
||||
return t.UTC().Format(DefaultDateLayout)
|
||||
}
|
||||
|
||||
// MarshalJSON implements the [json.Marshaler] interface.
|
||||
@ -74,12 +75,10 @@ func (d DateTime) Value() (driver.Value, error) {
|
||||
// into the current DateTime instance.
|
||||
func (d *DateTime) Scan(value any) error {
|
||||
switch v := value.(type) {
|
||||
case DateTime:
|
||||
d.t = v.Time()
|
||||
case time.Time:
|
||||
d.t = v
|
||||
case int, int64, int32, uint, uint64, uint32:
|
||||
d.t = cast.ToTime(v)
|
||||
case DateTime:
|
||||
d.t = v.Time()
|
||||
case string:
|
||||
if v == "" {
|
||||
d.t = time.Time{}
|
||||
@ -91,6 +90,8 @@ func (d *DateTime) Scan(value any) error {
|
||||
}
|
||||
d.t = t
|
||||
}
|
||||
case int, int64, int32, uint, uint64, uint32:
|
||||
d.t = cast.ToTime(v)
|
||||
default:
|
||||
str := cast.ToString(v)
|
||||
if str == "" {
|
||||
|
Loading…
x
Reference in New Issue
Block a user