diff options
author | Frédéric Guillot <fred@miniflux.net> | 2017-11-19 21:10:04 -0800 |
---|---|---|
committer | Frédéric Guillot <fred@miniflux.net> | 2017-11-19 22:01:46 -0800 |
commit | 8ffb773f43c8dc54801ca1d111854e7e881c93c9 (patch) | |
tree | 38133a2fc612597a75fed1d13e5b4042f58a2b7e /vendor/github.com/tdewolff/minify/cmd/minify/util.go |
First commit
Diffstat (limited to 'vendor/github.com/tdewolff/minify/cmd/minify/util.go')
-rw-r--r-- | vendor/github.com/tdewolff/minify/cmd/minify/util.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/vendor/github.com/tdewolff/minify/cmd/minify/util.go b/vendor/github.com/tdewolff/minify/cmd/minify/util.go new file mode 100644 index 0000000..d8db16e --- /dev/null +++ b/vendor/github.com/tdewolff/minify/cmd/minify/util.go @@ -0,0 +1,46 @@ +package main + +import "io" + +type countingReader struct { + io.Reader + N int +} + +func (r *countingReader) Read(p []byte) (int, error) { + n, err := r.Reader.Read(p) + r.N += n + return n, err +} + +type countingWriter struct { + io.Writer + N int +} + +func (w *countingWriter) Write(p []byte) (int, error) { + n, err := w.Writer.Write(p) + w.N += n + return n, err +} + +type prependReader struct { + io.ReadCloser + prepend []byte +} + +func NewPrependReader(r io.ReadCloser, prepend []byte) *prependReader { + return &prependReader{r, prepend} +} + +func (r *prependReader) Read(p []byte) (int, error) { + if r.prepend != nil { + n := copy(p, r.prepend) + if n != len(r.prepend) { + return n, io.ErrShortBuffer + } + r.prepend = nil + return n, nil + } + return r.ReadCloser.Read(p) +} |