Bumps [github.com/go-git/go-git/v5](https://github.com/go-git/go-git) from 5.4.2 to 5.7.0. - [Release notes](https://github.com/go-git/go-git/releases) - [Commits](https://github.com/go-git/go-git/compare/v5.4.2...v5.7.0) --- updated-dependencies: - dependency-name: github.com/go-git/go-git/v5 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| CREDITS | ||
| LICENSE | ||
| README.md | ||
| bufpipe.go | ||
| doc.go | ||
README.md
bufpipe: Buffered Pipe
The buffered version of io.Pipe. It's safe for concurrent use.
How does it differ from io.Pipe?
Writes never block because the pipe has variable-sized buffer.
r, w := bufpipe.New(nil)
io.WriteString(w, "abc") // No blocking.
io.WriteString(w, "def") // No blocking, too.
w.Close()
io.Copy(os.Stdout, r)
// Output: abcdef
How does it differ from bytes.Buffer?
Reads block if the internal buffer is empty until the writer is closed.
r, w := bufpipe.New(nil)
done := make(chan struct{})
go func() {
io.Copy(os.Stdout, r) // The reads block until the writer is closed.
done <- struct{}{}
}()
io.WriteString(w, "abc")
io.WriteString(w, "def")
w.Close()
<-done
// Output: abcdef
Contribution
Generate CREDITS
The CREDITS file are generated by gocredits. Update it when the dependencies are changed.
$ gocredits > CREDITS