url.go (468B)
1 package internal 2 3 import "net/url" 4 5 type URL struct { 6 *url.URL 7 } 8 9 func (u *URL) MarshalText() ([]byte, error) { 10 return []byte(u.URL.String()), nil 11 } 12 13 func (u *URL) UnmarshalText(buf []byte) error { 14 var err error 15 u.URL, err = url.Parse(string(buf)) 16 if err != nil { 17 return err 18 } 19 return nil 20 } 21 22 func (u *URL) Copy() *URL { 23 return MustURL(u.String()) 24 } 25 26 func MustURL(arg string) *URL { 27 u, err := url.Parse(arg) 28 if err != nil { 29 panic(err) 30 } 31 return &URL{u} 32 }