package opts | |
import ( | |
"fmt" | |
"net" | |
) | |
type IpOpt struct { | |
*net.IP | |
} | |
func NewIpOpt(ref *net.IP, defaultVal string) *IpOpt { | |
o := &IpOpt{ | |
IP: ref, | |
} | |
o.Set(defaultVal) | |
return o | |
} | |
func (o *IpOpt) Set(val string) error { | |
ip := net.ParseIP(val) | |
if ip == nil { | |
return fmt.Errorf("%s is not an ip address", val) | |
} | |
*o.IP = ip | |
return nil | |
} | |
func (o *IpOpt) String() string { | |
if *o.IP == nil { | |
return "" | |
} | |
return o.IP.String() | |
} |