package dns import ( "fmt" "net/netip" ) type AAAA struct { Addr netip.Addr } func (a *AAAA) Type() uint16 { return TypeAAAA } func (a *AAAA) Pack(p *packer) error { b := a.Addr.As16() p.buf = append(p.buf, b[:]...) return nil } func (a *AAAA) Unpack(u *unpacker, length uint16) error { if length != 16 { return fmt.Errorf("dns: AAAA rdata length %d != 16", length) } if u.off+16 > len(u.buf) { return fmt.Errorf("dns: short AAAA rdata") } a.Addr = netip.AddrFrom16([16]byte(u.buf[u.off : u.off+16])) u.off += 16 return nil } func (a *AAAA) String() string { return a.Addr.String() }