func()

in src/common/trie/trie.go [81:113]


func (t *Trie) Match(s string) bool {
	n := t.root
	i := 0
	runes := []rune(s)
	for ; i < len(runes); i++ {
		m, ok := n.nodes['*']
		if ok {
			for ; i < len(runes) && runes[i] != ' '; i++ {
			}
			if i == len(runes) {
				return true
			}
			i--
			n = m
		} else {
			r := runes[i]
			if m, ok := n.nodes[r]; ok {
				n = m
			} else {
				return false
			}
		}
	}

	if len(n.nodes) == 0 || n.end {
		return true
	}
	if _, ok := n.nodes[' ']; ok {
		return true
	}
	_, ok := n.nodes['*']
	return ok
}