wrapReader adapts an io.Reader into an io.ReadCloser. If reader already is a ReadCloser it is returned as-is, otherwise a no-op Close is added.
(reader io.Reader)
| 333 | // wrapReader adapts an io.Reader into an io.ReadCloser. If reader already is a |
| 334 | // ReadCloser it is returned as-is, otherwise a no-op Close is added. |
| 335 | func wrapReader(reader io.Reader) io.ReadCloser { |
| 336 | if rc, ok := reader.(io.ReadCloser); ok { |
| 337 | return rc |
| 338 | } |
| 339 | return fakeCloseReader{reader} |
| 340 | } |
| 341 | |
| 342 | type fakeCloseReader struct { |
| 343 | io.Reader |