diff options
Diffstat (limited to 'ideas/timer.go')
| -rw-r--r-- | ideas/timer.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/ideas/timer.go b/ideas/timer.go new file mode 100644 index 0000000..3d18445 --- /dev/null +++ b/ideas/timer.go @@ -0,0 +1,36 @@ +package repostatus + +import ( + "time" +) + +// timeFunction takes a function as an argument and returns the execution time. +func timeFunction(f func()) time.Duration { + startTime := time.Now() // Record the start time + f() // Execute the function + return time.Since(startTime) // Calculate the elapsed time +} + +func (ls *RepoStatus) SetSpeedActual(s string) { + if !ls.Ready() { + return + } + ls.speedActual.SetValue(s) +} + +func (rs *RepoStatus) setSpeed(duration time.Duration) { + s := fmt.Sprint(duration) + if rs.speedActual == nil { + log.Log(WARN, "rs.speedActual == nil") + return + } + rs.speedActual.SetValue(s) + + if duration > 200*time.Millisecond { + rs.speed.SetValue("SLOW") + } else if duration > 50*time.Millisecond { + rs.speed.SetValue("OK") + } else { + rs.speed.SetValue("FAST") + } +} |
