32 lines
576 B
Go
32 lines
576 B
Go
package and
|
|
|
|
import (
|
|
"io"
|
|
)
|
|
|
|
type ReadCloser struct {
|
|
io.Reader
|
|
CloseFunc func() error
|
|
}
|
|
|
|
var _ io.ReadCloser = (*ReadCloser)(nil)
|
|
|
|
// Close implements io.ReadCloser
|
|
func (rac *ReadCloser) Close() error {
|
|
return rac.CloseFunc()
|
|
}
|
|
|
|
// WriteCloser implements io.WriteCloser by reading from a particular io.Writer
|
|
// and then calling the provided "Close()" method.
|
|
type WriteCloser struct {
|
|
io.Writer
|
|
CloseFunc func() error
|
|
}
|
|
|
|
var _ io.WriteCloser = (*WriteCloser)(nil)
|
|
|
|
// Close implements io.WriteCloser
|
|
func (wac *WriteCloser) Close() error {
|
|
return wac.CloseFunc()
|
|
}
|