package utilities import ( "bytes" "io" "io/ioutil" ) // IOReaderFactory takes in an io.Reader and returns a function that will allow you to create a new reader that begins // at the start of the stream func IOReaderFactory(r io.Reader) (func() io.Reader, error) { b, err := ioutil.ReadAll(r) if err != nil { return nil, err } return func() io.Reader { return bytes.NewReader(b) }, nil }