func (d *Digest) WriteString(s string) (n int, err error) {
	d.Write(*(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)})))
	return len(s), nil
}
WriteString adds more data to d. It always returns len(s), nil.
It may be faster than Write([]byte(s)) by avoiding a copy.
package xxhash
import (
	"unsafe"
)
func Sum64String(s string) uint64 {
	b := *(*[]byte)(unsafe.Pointer(&sliceHeader{s, len(s)}))
	return Sum64(b)
}