code: func read(parser *yaml_parser_t, s []byte) []byte {
  	w := width(parser.buffer[parser.buffer_pos])
  	if w == 0 {
  		panic("invalid character sequence")
  	}
  	if len(s) == 0 {
  		s = make([]byte, 0, 32)
  	}
  	if w == 1 && len(s)+w <= cap(s) {
  		s = s[:len(s)+1]
  		s[len(s)-1] = parser.buffer[parser.buffer_pos]
  		parser.buffer_pos++
  	} else {
  		s = append(s, parser.buffer[parser.buffer_pos:parser.buffer_pos+w]...)
  		parser.buffer_pos += w
  	}
  	parser.mark.index++
  	parser.mark.column++
  	parser.unread--
  	return s
  }
docs: // Copy a character to a string buffer and advance pointers.