2021-10-16 14:11:32 -07:00
|
|
|
// generated by go run gen.go; DO NOT EDIT
|
|
|
|
|
|
|
|
package publicsuffix
|
|
|
|
|
2023-01-28 13:57:53 -08:00
|
|
|
import _ "embed"
|
|
|
|
|
2024-05-23 14:44:31 -07:00
|
|
|
const version = "publicsuffix.org's public_suffix_list.dat, git revision 63cbc63d470d7b52c35266aa96c4c98c96ec499c (2023-08-03T10:01:25Z)"
|
2021-10-16 14:11:32 -07:00
|
|
|
|
|
|
|
const (
|
2022-11-26 15:42:16 -08:00
|
|
|
nodesBits = 40
|
2021-10-16 14:11:32 -07:00
|
|
|
nodesBitsChildren = 10
|
|
|
|
nodesBitsICANN = 1
|
2022-11-26 15:42:16 -08:00
|
|
|
nodesBitsTextOffset = 16
|
2021-10-16 14:11:32 -07:00
|
|
|
nodesBitsTextLength = 6
|
|
|
|
|
|
|
|
childrenBitsWildcard = 1
|
|
|
|
childrenBitsNodeType = 2
|
|
|
|
childrenBitsHi = 14
|
|
|
|
childrenBitsLo = 14
|
|
|
|
)
|
|
|
|
|
|
|
|
const (
|
|
|
|
nodeTypeNormal = 0
|
|
|
|
nodeTypeException = 1
|
|
|
|
nodeTypeParentOnly = 2
|
|
|
|
)
|
|
|
|
|
|
|
|
// numTLD is the number of top level domains.
|
2024-05-23 14:44:31 -07:00
|
|
|
const numTLD = 1474
|
2021-10-16 14:11:32 -07:00
|
|
|
|
2023-01-28 13:57:53 -08:00
|
|
|
// text is the combined text of all labels.
|
|
|
|
//
|
|
|
|
//go:embed data/text
|
|
|
|
var text string
|
2021-10-16 14:11:32 -07:00
|
|
|
|
2022-11-26 15:42:16 -08:00
|
|
|
// nodes is the list of nodes. Each node is represented as a 40-bit integer,
|
|
|
|
// which encodes the node's children, wildcard bit and node type (as an index
|
|
|
|
// into the children array), ICANN bit and text.
|
2021-10-16 14:11:32 -07:00
|
|
|
//
|
2022-11-26 15:42:16 -08:00
|
|
|
// The layout within the node, from MSB to LSB, is:
|
2022-04-25 14:50:10 -07:00
|
|
|
//
|
2022-11-26 15:42:16 -08:00
|
|
|
// [ 7 bits] unused
|
2021-10-16 14:11:32 -07:00
|
|
|
// [10 bits] children index
|
|
|
|
// [ 1 bits] ICANN bit
|
2022-11-26 15:42:16 -08:00
|
|
|
// [16 bits] text index
|
2021-10-16 14:11:32 -07:00
|
|
|
// [ 6 bits] text length
|
2023-01-28 13:57:53 -08:00
|
|
|
//
|
|
|
|
//go:embed data/nodes
|
|
|
|
var nodes uint40String
|
2021-10-16 14:11:32 -07:00
|
|
|
|
|
|
|
// children is the list of nodes' children, the parent's wildcard bit and the
|
|
|
|
// parent's node type. If a node has no children then their children index
|
|
|
|
// will be in the range [0, 6), depending on the wildcard bit and node type.
|
|
|
|
//
|
|
|
|
// The layout within the uint32, from MSB to LSB, is:
|
2022-04-25 14:50:10 -07:00
|
|
|
//
|
2021-10-16 14:11:32 -07:00
|
|
|
// [ 1 bits] unused
|
|
|
|
// [ 1 bits] wildcard bit
|
|
|
|
// [ 2 bits] node type
|
|
|
|
// [14 bits] high nodes index (exclusive) of children
|
|
|
|
// [14 bits] low nodes index (inclusive) of children
|
2023-01-28 13:57:53 -08:00
|
|
|
//
|
|
|
|
//go:embed data/children
|
|
|
|
var children uint32String
|
2021-10-16 14:11:32 -07:00
|
|
|
|
2024-05-23 14:44:31 -07:00
|
|
|
// max children 743 (capacity 1023)
|
|
|
|
// max text offset 30876 (capacity 65535)
|
|
|
|
// max text length 31 (capacity 63)
|
|
|
|
// max hi 9322 (capacity 16383)
|
|
|
|
// max lo 9317 (capacity 16383)
|