package flashtext

type Node struct {
	children map[rune]*Node   // 使用 map 存储叶子节点,key:'char' ,value: *Node
	exist    map[int]struct{} // 关键词节点是一个完整的匹配词，记录其长度
	failure  *Node            // 记录失败指针
}

func newNode() *Node {
	return &Node{
		children: make(map[rune]*Node),
		exist:    make(map[int]struct{}),
	}
}

type Match struct {
	match string
	start int
	end   int
}

func (m *Match) MatchString() string {
	return m.match
}

func (m *Match) Start() int {
	return m.start
}

func (m *Match) End() int {
	return m.end
}
