diff options
Diffstat (limited to 'vendor/codeberg.org/gruf/go-iotools/close.go')
-rw-r--r-- | vendor/codeberg.org/gruf/go-iotools/close.go | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/vendor/codeberg.org/gruf/go-iotools/close.go b/vendor/codeberg.org/gruf/go-iotools/close.go index 3f0ee7780..f3d4814ba 100644 --- a/vendor/codeberg.org/gruf/go-iotools/close.go +++ b/vendor/codeberg.org/gruf/go-iotools/close.go @@ -2,6 +2,13 @@ package iotools import "io" +// NopCloser is an empty +// implementation of io.Closer, +// that simply does nothing! +type NopCloser struct{} + +func (NopCloser) Close() error { return nil } + // CloserFunc is a function signature which allows // a function to implement the io.Closer type. type CloserFunc func() error @@ -10,6 +17,7 @@ func (c CloserFunc) Close() error { return c() } +// CloserCallback wraps io.Closer to add a callback deferred to call just after Close(). func CloserCallback(c io.Closer, cb func()) io.Closer { return CloserFunc(func() error { defer cb() @@ -17,6 +25,7 @@ func CloserCallback(c io.Closer, cb func()) io.Closer { }) } +// CloserAfterCallback wraps io.Closer to add a callback called just before Close(). func CloserAfterCallback(c io.Closer, cb func()) io.Closer { return CloserFunc(func() (err error) { defer func() { err = c.Close() }() |