func LookupRune(r rune) Properties {
	var buf [4]byte
	n := utf8.EncodeRune(buf[:], r)
	v, _ := trie.lookup(buf[:n])
	last := byte(r)
	if r >= utf8.RuneSelf {
		last = 0x80 + byte(r&0x3f)
	}
	return Properties{elem(v), last}
}
LookupRune reports the Properties of rune r.
package width
import (
	"unicode/utf8"
	"golang.org/x/text/transform"
)
type Kind int
const (
	Neutral Kind = iota
	EastAsianAmbiguous
	EastAsianWide
	EastAsianNarrow
	EastAsianFullwidth
	EastAsianHalfwidth
)
var trie = newWidthTrie(0)
func Lookup(b []byte) (p Properties, size int) {
	v, sz := trie.lookup(b)
	return Properties{elem(v), b[sz-1]}, sz
}
func LookupString(s string) (p Properties, size int) {
	v, sz := trie.lookupString(s)
	return Properties{elem(v), s[sz-1]}, sz
}