mirror of
https://github.com/restic/rest-server.git
synced 2025-12-07 09:36:13 -08:00
These are the vendor files needed for Prometheus support. I have not been able to figure out how to do this properly with gopkg.
42 lines
1.3 KiB
Markdown
42 lines
1.3 KiB
Markdown
# datacounter
|
|
Golang counters for readers/writers
|
|
|
|
[](https://travis-ci.org/miolini/datacounter) [](http://godoc.org/github.com/miolini/datacounter) [](http://goreportcard.com/report/miolini/datacounter)
|
|
|
|
## Examples
|
|
### ReaderCounter
|
|
```go
|
|
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
|
|
```go
|
|
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
|
|
```go
|
|
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))
|
|
}
|
|
```
|