From 9010ebe8a581fb9db7bc6e97d40ff062fb18495f Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Tue, 12 May 2026 15:35:06 -0400 Subject: unmarshal GET /print-jobs response --- date.go | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 date.go (limited to 'date.go') diff --git a/date.go b/date.go new file mode 100644 index 0000000..c82769f --- /dev/null +++ b/date.go @@ -0,0 +1,39 @@ +package lulu + +import ( + "fmt" + "time" +) + +type Date time.Time + +func ParseDate(s string) (Date, error) { + t, err := time.Parse(time.DateOnly, s) + return Date(t), err +} + +func MustParseDate(s string) Date { + d, err := ParseDate(s) + if err != nil { + panic(fmt.Sprintf("lulu.ParseDate(%q): %v", s, err)) + } + return d +} + +func (d Date) String() string { + return time.Time(d).Format(time.DateOnly) +} + +func (d *Date) UnmarshalText(text []byte) error { + nd, err := ParseDate(string(text)) + if err != nil { + return err + } + *d = nd + return nil +} + +func (d Date) MarshalText() ([]byte, error) { + s := time.Time(d).Format(time.DateOnly) + return []byte(s), nil +} -- cgit v1.2.3