Files
synctv-weihang/server/internal/config/duration.go
2026-06-15 22:46:12 +08:00

32 lines
539 B
Go

package config
import (
"encoding/json"
"time"
)
func (d *Duration) UnmarshalJSON(b []byte) error {
var s string
if err := json.Unmarshal(b, &s); err == nil {
v, parseErr := time.ParseDuration(s)
if parseErr != nil {
return parseErr
}
*d = Duration(v)
return nil
}
var n int64
if err := json.Unmarshal(b, &n); err != nil {
return err
}
*d = Duration(time.Duration(n))
return nil
}
func (d Duration) MarshalJSON() ([]byte, error) {
return json.Marshal(time.Duration(d).String())
}
type Duration time.Duration