| 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 | |
| } |