diff options
Diffstat (limited to 'email.go')
| -rw-r--r-- | email.go | 15 |
1 files changed, 10 insertions, 5 deletions
@@ -5,8 +5,10 @@ import ( "net/mail" ) -type EmailAddress struct { - *mail.Address +type EmailAddress mail.Address + +func (a EmailAddress) MarshalText() ([]byte, error) { + return []byte(a.Address), nil } func (a *EmailAddress) UnmarshalText(text []byte) error { @@ -14,13 +16,16 @@ func (a *EmailAddress) UnmarshalText(text []byte) error { if err != nil { return err } - a.Address = addr + *a = EmailAddress(*addr) return nil } func ParseEmailAddress(address string) (EmailAddress, error) { addr, err := mail.ParseAddress(address) - return EmailAddress{addr}, err + if err != nil { + return EmailAddress{}, err + } + return EmailAddress(*addr), nil } func MustParseEmailAddress(s string) EmailAddress { @@ -28,5 +33,5 @@ func MustParseEmailAddress(s string) EmailAddress { if err != nil { panic(fmt.Sprintf("lulu: %v", err)) } - return EmailAddress{addr} + return EmailAddress(*addr) } |