package types import ( "fmt" "net" ) type TxId [4]byte type Ipv4Addr [4]byte type HwAddr [16]byte const ( ServerPort = 67 ClientPort = 68 ) func Ipv4AddrFromNetIP(ip net.IP) Ipv4Addr { ipv4 := ip.To4() return Ipv4Addr{ipv4[0], ipv4[1], ipv4[2], ipv4[3]} } func (addr Ipv4Addr) ToNetIPv4() net.IP { return net.IPv4(addr[0], addr[1], addr[2], addr[3]) } func (addr Ipv4Addr) String() string { return addr.ToNetIPv4().String() } func (addr HwAddr) String() string { return fmt.Sprintf("%02x:%02x:%02x:%02x:%02x:%02x", addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]) } func HwAddrFromString(s string) (addr HwAddr, err error) { _, err = fmt.Sscanf(s, "%02x:%02x:%02x:%02x:%02x:%02x", &addr[0], &addr[1], &addr[2], &addr[3], &addr[4], &addr[5]) return addr, err }