readerfactory.go 386 B

12345678910111213141516171819
  1. package utilities
  2. import (
  3. "bytes"
  4. "io"
  5. )
  6. // IOReaderFactory takes in an io.Reader and returns a function that will allow you to create a new reader that begins
  7. // at the start of the stream
  8. func IOReaderFactory(r io.Reader) (func() io.Reader, error) {
  9. b, err := io.ReadAll(r)
  10. if err != nil {
  11. return nil, err
  12. }
  13. return func() io.Reader {
  14. return bytes.NewReader(b)
  15. }, nil
  16. }