summaryrefslogtreecommitdiff
path: root/ideas/timer.go
blob: 3d18445127be5ddd5b2f454770212d7d7e051b67 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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")
	}
}