(zb scode.Bytes, p netip.Prefix)
| 307 | var ones = [16]byte{0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} |
| 308 | |
| 309 | func AppendNet(zb scode.Bytes, p netip.Prefix) scode.Bytes { |
| 310 | // Mask for canonical form. |
| 311 | p = p.Masked() |
| 312 | zb = append(zb, p.Addr().AsSlice()...) |
| 313 | length := p.Addr().BitLen() / 8 |
| 314 | onesAddr, ok := netip.AddrFromSlice(ones[:length]) |
| 315 | if !ok { |
| 316 | panic(fmt.Sprintf("bad slice length %d for %s", length, p)) |
| 317 | } |
| 318 | mask := netip.PrefixFrom(onesAddr, p.Bits()).Masked() |
| 319 | return append(zb, mask.Addr().AsSlice()...) |
| 320 | } |
| 321 | |
| 322 | func EncodeNet(p netip.Prefix) scode.Bytes { |
| 323 | return AppendNet(nil, p) |
no test coverage detected