📚 datacounter - Awesome Go Library for Miscellaneous
Go counters for readers/writer/http.ResponseWriter.
🏷️ Miscellaneous
📂 These libraries were placed here because none of the other categories seemed to fit.
⭐ 48 stars
Detailed Description of datacounter
Datacounter
Golang counters for readers/writers.
Examples
ReaderCounter
buf := bytes.Buffer{}
buf.Write(data)
counter := datacounter.NewReaderCounter(&buf)
io.Copy(ioutil.Discard, counter)
if counter.Count() != dataLen {
t.Fatalf("count mismatch len of test data: %d != %d", counter.Count(), len(data))
}
WriterCounter
buf := bytes.Buffer{}
counter := datacounter.NewWriterCounter(&buf)
counter.Write(data)
if counter.Count() != dataLen {
t.Fatalf("count mismatch len of test data: %d != %d", counter.Count(), len(data))
}
http.ResponseWriter Counter
handler := func(w http.ResponseWriter, r *http.Request) {
w.Write(data)
}
req, err := http.NewRequest("GET", "http://example.com/foo", nil)
if err != nil {
t.Fatal(err)
}
w := httptest.NewRecorder()
counter := datacounter.NewResponseWriterCounter(w)
handler(counter, req)
if counter.Count() != dataLen {
t.Fatalf("count mismatch len of test data: %d != %d", counter.Count(), len(data))
}