aboutsummaryrefslogtreecommitdiffstats
path: root/email.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2026-05-12 15:35:06 -0400
committerSam Anthony <sam@samanthony.xyz>2026-05-12 15:37:29 -0400
commit9010ebe8a581fb9db7bc6e97d40ff062fb18495f (patch)
tree4301a455762a59d4951507c8a8781e99c6f91c6d /email.go
parent329257be8d9fb05d3dcea49823acea0f878ed52c (diff)
downloadlulu-9010ebe8a581fb9db7bc6e97d40ff062fb18495f.zip
unmarshal GET /print-jobs response
Diffstat (limited to 'email.go')
-rw-r--r--email.go32
1 files changed, 32 insertions, 0 deletions
diff --git a/email.go b/email.go
new file mode 100644
index 0000000..bdf4dce
--- /dev/null
+++ b/email.go
@@ -0,0 +1,32 @@
+package lulu
+
+import (
+ "fmt"
+ "net/mail"
+)
+
+type EmailAddress struct {
+ *mail.Address
+}
+
+func (a *EmailAddress) UnmarshalText(text []byte) error {
+ addr, err := mail.ParseAddress(string(text))
+ if err != nil {
+ return err
+ }
+ a.Address = addr
+ return nil
+}
+
+func ParseEmailAddress(address string) (EmailAddress, error) {
+ addr, err := mail.ParseAddress(address)
+ return EmailAddress{addr}, err
+}
+
+func MustParseEmailAddress(s string) EmailAddress {
+ addr, err := mail.ParseAddress(s)
+ if err != nil {
+ panic(fmt.Sprintf("lulu: %v", err))
+ }
+ return EmailAddress{addr}
+}