type patriciaTree … func newPatriciaTree(bs ...[]byte) *patriciaTree { … } func newPatriciaTreeString(strs ...string) *patriciaTree { … } func (t *patriciaTree) matchPrefix(r io.Reader) bool { … } func (t *patriciaTree) match(r io.Reader) bool { … } type ptNode … func newNode(strs [][]byte) *ptNode { … } func splitPrefix(bss [][]byte) (prefix []byte, rest [][]byte) { … } func (n *ptNode) match(b []byte, prefix bool) bool { … }