func (s suffix) Path() []byte {
	return append(make([]byte, 0, len(s.path)), s.path...)
}
Path returns a copy of the suffix path.
package cache
import (
	"encoding/base64"
	"errors"
	"fmt"
)
type key struct {
	depth uint8
	value byte
}
var (
	emptySuffix = newSuffix(0, []byte{0})
	fromRaw = make(map[key]*suffix)
	fromString = make(map[string]*suffix)
)
type suffix struct {
	bits uint8
	path []byte
	asString string
}
func newSuffix(bits uint8, path []byte) *suffix {
	if bits <= 8 {
		if sfx, ok := fromRaw[key{depth: bits, value: path[0]}]; ok {
			return sfx
		}
	}
	r := make([]byte, 1, len(path)+1)
	r[0] = bits
	r = append(r, path...)
	s := base64.StdEncoding.EncodeToString(r)
	return &suffix{bits: bits, path: r[1:], asString: s}
}
func (s suffix) Bits() uint8 {
	return s.bits
}