mirror

Mirror free and open-source projects you like with minimal effort
git clone git://git.server.ky/slackcoder/mirror
Log | Files | Refs | README

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 }