summaryrefslogtreecommitdiff
path: root/ideas/timer.go
diff options
context:
space:
mode:
Diffstat (limited to 'ideas/timer.go')
-rw-r--r--ideas/timer.go36
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")
+ }
+}