mirror of
https://github.com/restic/restic.git
synced 2025-12-04 02:31:57 +00:00
limiter: move to internal/backend
This commit is contained in:
29
internal/backend/limiter/limiter.go
Normal file
29
internal/backend/limiter/limiter.go
Normal file
@@ -0,0 +1,29 @@
|
||||
package limiter
|
||||
|
||||
import (
|
||||
"io"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Limiter defines an interface that implementors can use to rate limit I/O
|
||||
// according to some policy defined and configured by the implementor.
|
||||
type Limiter interface {
|
||||
// Upstream returns a rate limited reader that is intended to be used in
|
||||
// uploads.
|
||||
Upstream(r io.Reader) io.Reader
|
||||
|
||||
// UpstreamWriter returns a rate limited writer that is intended to be used
|
||||
// in uploads.
|
||||
UpstreamWriter(w io.Writer) io.Writer
|
||||
|
||||
// Downstream returns a rate limited reader that is intended to be used
|
||||
// for downloads.
|
||||
Downstream(r io.Reader) io.Reader
|
||||
|
||||
// Downstream returns a rate limited reader that is intended to be used
|
||||
// for downloads.
|
||||
DownstreamWriter(r io.Writer) io.Writer
|
||||
|
||||
// Transport returns an http.RoundTripper limited with the limiter.
|
||||
Transport(http.RoundTripper) http.RoundTripper
|
||||
}
|
||||
Reference in New Issue
Block a user