func (r SortedBytesToStringMap) Get(k []byte) (string, bool) {
	return r.loopGet(r.root, k)
}
Get a value from the sorted map at key `k`. Returns false
if the key doesn't exist.
package codegen
import "bytes"
func (r SortedBytesToStringMap) compare(a, b []byte) int { return bytes.Compare(a, b) }
type SortedBytesToStringMap struct {
	root *nodeBytesToString
}
func NewSortedBytesToStringMap() *SortedBytesToStringMap { return &SortedBytesToStringMap{} }
func (r SortedBytesToStringMap) IsEmpty() bool {
	return r.root == nil
}
func (r SortedBytesToStringMap) Size() int { return r.root.size() }
func (r *SortedBytesToStringMap) Clear() { r.root = nil }
func (r *SortedBytesToStringMap) Put(k []byte, v string) (old string, overwrite bool) {
	r.root, old, overwrite = r.put(r.root, k, func() string { return v }, func(_ string) string { return v })
	return
}
func (r *SortedBytesToStringMap) Mutate(k []byte, creator func() string, mutator func(old string) string) {
	r.root, _, _ = r.put(r.root, k, creator, mutator)
}
func (r *SortedBytesToStringMap) put(h *nodeBytesToString, k []byte, create func() string, mutate func(old string) string) (_ *nodeBytesToString, old string, overwrite bool) {
	if h == nil {
		n := &nodeBytesToString{key: k, val: create(), n: 1, colorRed: true}
		return n, old, overwrite
	}
	cmp := r.compare(k, h.key)
	if cmp < 0 {
		h.left, old, overwrite = r.put(h.left, k, create, mutate)
	} else if cmp > 0 {
		h.right, old, overwrite = r.put(h.right, k, create, mutate)
	} else {
		overwrite = true
		old = h.val
		h.val = mutate(old)
	}
	if h.right.isRed() && !h.left.isRed() {
		h = r.rotateLeft(h)
	}
	if h.left.isRed() && h.left.left.isRed() {
		h = r.rotateRight(h)
	}
	if h.left.isRed() && h.right.isRed() {
		r.flipColors(h)
	}
	h.n = h.left.size() + h.right.size() + 1
	return h, old, overwrite
}