buffered_reader.go 324 B

12345678910111213141516171819202122
  1. package terminal
  2. import (
  3. "bytes"
  4. "io"
  5. )
  6. type BufferedReader struct {
  7. In io.Reader
  8. Buffer *bytes.Buffer
  9. }
  10. func (br *BufferedReader) Read(p []byte) (int, error) {
  11. n, err := br.Buffer.Read(p)
  12. if err != nil && err != io.EOF {
  13. return n, err
  14. } else if err == nil {
  15. return n, nil
  16. }
  17. return br.In.Read(p[n:])
  18. }