github.com/qjfoidnh/BaiduPCS-Go@v0.0.0-20231011165705-caa18a3765f3/internal/pcsfunctions/statistic.go (about) 1 package pcsfunctions 2 3 import ( 4 "github.com/qjfoidnh/BaiduPCS-Go/baidupcs/expires" 5 "sync/atomic" 6 "time" 7 ) 8 9 type ( 10 Statistic struct { 11 totalSize int64 12 startTime time.Time 13 } 14 ) 15 16 func (s *Statistic) AddTotalSize(size int64) int64 { 17 return atomic.AddInt64(&s.totalSize, size) 18 } 19 20 func (s *Statistic) TotalSize() int64 { 21 return s.totalSize 22 } 23 24 func (s *Statistic) StartTimer() { 25 s.startTime = time.Now() 26 expires.StripMono(&s.startTime) 27 } 28 29 func (s *Statistic) Elapsed() time.Duration { 30 return time.Now().Sub(s.startTime) 31 }