github.com/fawick/restic@v0.1.1-0.20171126184616-c02923fbfc79/internal/limiter/limiter.go (about)

     1  package limiter
     2  
     3  import (
     4  	"io"
     5  )
     6  
     7  // Limiter defines an interface that implementors can use to rate limit I/O
     8  // according to some policy defined and configured by the implementor.
     9  type Limiter interface {
    10  	// Upstream returns a rate limited reader that is intended to be used in
    11  	// uploads.
    12  	Upstream(r io.Reader) io.Reader
    13  
    14  	// Downstream returns a rate limited reader that is intended to be used
    15  	// for downloads.
    16  	Downstream(r io.Reader) io.Reader
    17  }