code: func (r *ReverseReader) ReadRune() (ru rune, size int, err error) {
  	var rb [4]byte
  	n, err := r.Read(rb[:])
  	ru, size = utf8.DecodeLastRune(rb[:n])
  	if err != nil {
  		return
  	}
  	r.offset += int64(n - size)
  	r.rs.Seek(r.offset, os.SEEK_SET)
  	if ru == utf8.RuneError {
  		return ru, size, fmt.Errorf("RuneError")
  	}
  	return
  }
docs: // ReadRune reads a rune backward