aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/moe/nea/firmament/util/Timer.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/kotlin/moe/nea/firmament/util/Timer.kt')
-rw-r--r--src/main/kotlin/moe/nea/firmament/util/Timer.kt23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/kotlin/moe/nea/firmament/util/Timer.kt b/src/main/kotlin/moe/nea/firmament/util/Timer.kt
new file mode 100644
index 0000000..bfdc9d1
--- /dev/null
+++ b/src/main/kotlin/moe/nea/firmament/util/Timer.kt
@@ -0,0 +1,23 @@
+package moe.nea.firmament.util
+
+import kotlin.time.Duration
+import kotlin.time.ExperimentalTime
+import kotlin.time.TimeSource
+
+@OptIn(ExperimentalTime::class)
+class Timer {
+ private var mark: TimeSource.Monotonic.ValueTimeMark? = null
+
+ fun timePassed(): Duration {
+ return mark?.elapsedNow() ?: Duration.INFINITE
+ }
+
+ fun markNow() {
+ mark = TimeSource.Monotonic.markNow()
+ }
+
+ fun markFarPast() {
+ mark = null
+ }
+
+}