Skip to content

go-libs/progress

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

progress

Making a progress for Reader or Writer write/read bytes.

View the docs.

Usage

import "github.com/go-libs/progress"

Writing bytes in progress

import "github.com/go-libs/progress"

filename := "progress_test.go"
f, err := os.Open(filename)
defer f.Close()
if err != nil {
  log.Fatalln(err)
}
fs, err := os.Stat(filename)
if err != nil {
  log.Fatalln(err)
}

p := Progress.New()
p.Total = fs.Size()
p.Progress = func(current, total, expected int64) {
  log.Println("Writing", current, total, expected)
}

b := new(bytes.Buffer)
w := io.MultiWriter(p, b)
_, err = io.Copy(w, f)
if err != nil {
  log.Fatalln(err)
}

Reading bytes in progress

import "github.com/go-libs/syncreader"
import "github.com/go-libs/progress"

filename := "progress_test.go"
f, err := os.Open(filename)
defer f.Close()
if err != nil {
  log.Fatalln(err)
}
fs, err := os.Stat(filename)
if err != nil {
  log.Fatalln(err)
}

p := Progress.New()
p.Total = fs.Size()
p.Progress = func(current, total, expected int64) {
  log.Println("Reading", current, total, expected)
}

b := new(bytes.Buffer)
r := syncreader.New(f, p)
_, err = b.ReadFrom(r)
if err != nil {
  log.Fatalln(err)
}

Using IgnoreTotal flag to ignore total size in Progress initialization.

p := Progress.New()
p.IgnoreTotal = true
p.Progress = func(current, total, expected int64) {
  log.Println("Reading", current, total, expected)
}

About

Making a Progress for Reader/Writer read/write bytes

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages