diff options
| author | Sam Anthony <sam@samanthony.xyz> | 2026-05-12 15:35:06 -0400 |
|---|---|---|
| committer | Sam Anthony <sam@samanthony.xyz> | 2026-05-12 15:37:29 -0400 |
| commit | 9010ebe8a581fb9db7bc6e97d40ff062fb18495f (patch) | |
| tree | 4301a455762a59d4951507c8a8781e99c6f91c6d /email.go | |
| parent | 329257be8d9fb05d3dcea49823acea0f878ed52c (diff) | |
| download | lulu-9010ebe8a581fb9db7bc6e97d40ff062fb18495f.zip | |
unmarshal GET /print-jobs response
Diffstat (limited to 'email.go')
| -rw-r--r-- | email.go | 32 |
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} +} |