progress

package
v0.37.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 12, 2024 License: Apache-2.0 Imports: 7 Imported by: 274

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewReader

func NewReader(ctx context.Context, s Sinker, r io.Reader, size int64) *reader

Types

type Aggregator

type Aggregator struct {
	// contains filtered or unexported fields
}

func NewAggregator

func NewAggregator(s Sinker) *Aggregator

func (*Aggregator) Done

func (a *Aggregator) Done()

Done marks the aggregator as done. No more calls to Sink() may be made and the downstream progress report channel will be closed when Done() returns.

func (*Aggregator) Sink

func (a *Aggregator) Sink() chan<- Report

type Report

type Report interface {
	Percentage() float32
	Detail() string
	Error() error
}

Report defines the interface for types that can deliver progress reports. Examples include uploads/downloads in the http client and the task info field in the task managed object.

type SinkFunc

type SinkFunc func() chan<- Report

SinkFunc defines a function that returns a progress report channel.

func (SinkFunc) Sink

func (fn SinkFunc) Sink() chan<- Report

Sink makes the SinkFunc implement the Sinker interface.

type Sinker

type Sinker interface {
	Sink() chan<- Report
}

Sinker defines what is expected of a type that can act as a sink for progress reports. The semantics are as follows. If you call Sink(), you are responsible for closing the returned channel. Closing this channel means that the related task is done, or resulted in error.

func Prefix

func Prefix(s Sinker, prefix string) Sinker

func Scale

func Scale(s Sinker, n int) Sinker

func Tee

func Tee(s1, s2 Sinker) Sinker

Tee works like Unix tee; it forwards all progress reports it receives to the specified sinks

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL