mirror of
https://gitclone.com/github.com/MetaCubeX/Clash.Meta
synced 2024-11-16 06:01:21 +08:00
27 lines
436 B
Go
27 lines
436 B
Go
|
package trie
|
||
|
|
||
|
// Node is the trie's node
|
||
|
type Node struct {
|
||
|
Data interface{}
|
||
|
children map[string]*Node
|
||
|
}
|
||
|
|
||
|
func (n *Node) getChild(s string) *Node {
|
||
|
return n.children[s]
|
||
|
}
|
||
|
|
||
|
func (n *Node) hasChild(s string) bool {
|
||
|
return n.getChild(s) != nil
|
||
|
}
|
||
|
|
||
|
func (n *Node) addChild(s string, child *Node) {
|
||
|
n.children[s] = child
|
||
|
}
|
||
|
|
||
|
func newNode(data interface{}) *Node {
|
||
|
return &Node{
|
||
|
Data: data,
|
||
|
children: map[string]*Node{},
|
||
|
}
|
||
|
}
|