2022-07-03 13:08:30 +03:00
|
|
|
// generated by go run gen.go; DO NOT EDIT
|
|
|
|
|
|
|
|
package publicsuffix
|
|
|
|
|
2022-12-27 11:29:42 +03:00
|
|
|
import _ "embed"
|
|
|
|
|
|
|
|
const version = "publicsuffix.org's public_suffix_list.dat, git revision e248cbc92a527a166454afe9914c4c1b4253893f (2022-11-15T18:02:38Z)"
|
2022-07-03 13:08:30 +03:00
|
|
|
|
|
|
|
const (
|
2022-11-08 13:30:29 +03:00
|
|
|
nodesBits = 40
|
2022-07-03 13:08:30 +03:00
|
|
|
nodesBitsChildren = 10
|
|
|
|
nodesBitsICANN = 1
|
2022-11-08 13:30:29 +03:00
|
|
|
nodesBitsTextOffset = 16
|
2022-07-03 13:08:30 +03: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.
|
2022-12-27 11:29:42 +03:00
|
|
|
const numTLD = 1494
|
2022-07-03 13:08:30 +03:00
|
|
|
|
2022-12-27 11:29:42 +03:00
|
|
|
// text is the combined text of all labels.
|
|
|
|
//
|
|
|
|
//go:embed data/text
|
|
|
|
var text string
|
2022-07-03 13:08:30 +03:00
|
|
|
|
2022-11-08 13:30:29 +03: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.
|
2022-07-03 13:08:30 +03:00
|
|
|
//
|
2022-11-08 13:30:29 +03:00
|
|
|
// The layout within the node, from MSB to LSB, is:
|
2022-07-03 13:08:30 +03:00
|
|
|
//
|
2022-11-08 13:30:29 +03:00
|
|
|
// [ 7 bits] unused
|
2022-07-03 13:08:30 +03:00
|
|
|
// [10 bits] children index
|
|
|
|
// [ 1 bits] ICANN bit
|
2022-11-08 13:30:29 +03:00
|
|
|
// [16 bits] text index
|
2022-07-03 13:08:30 +03:00
|
|
|
// [ 6 bits] text length
|
2022-12-27 11:29:42 +03:00
|
|
|
//
|
|
|
|
//go:embed data/nodes
|
|
|
|
var nodes uint40String
|
2022-07-03 13:08:30 +03: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:
|
|
|
|
//
|
|
|
|
// [ 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
|
2022-12-27 11:29:42 +03:00
|
|
|
//
|
|
|
|
//go:embed data/children
|
|
|
|
var children uint32String
|
2022-07-03 13:08:30 +03:00
|
|
|
|
2022-12-27 11:29:42 +03:00
|
|
|
// max children 718 (capacity 1023)
|
|
|
|
// max text offset 32976 (capacity 65535)
|
2022-07-03 13:08:30 +03:00
|
|
|
// max text length 36 (capacity 63)
|
2022-12-27 11:29:42 +03:00
|
|
|
// max hi 9656 (capacity 16383)
|
|
|
|
// max lo 9651 (capacity 16383)
|