text: package textseg
  
  import "unicode/utf8"
  
  // ScanGraphemeClusters is a split function for bufio.Scanner that splits
  // on UTF8 sequence boundaries.
  //
  // This is included largely for completeness, since this behavior is already
  // built in to Go when ranging over a string.
  func ScanUTF8Sequences(data []byte, atEOF bool) (int, []byte, error) {
  	if len(data) == 0 {
  		return 0, nil, nil
  	}
  	r, seqLen := utf8.DecodeRune(data)
  	if r == utf8.RuneError && !atEOF {
  		return 0, nil, nil
  	}
  	return seqLen, data[:seqLen], nil
  }
  