ComparableTimeMark and specialized TimeSource KT-54082
- Introduce ComparableTimeMark interface extending TimeMark, and TimeSource.WithComparableMarks - a time source that returns such time marks. - Implement ComparableTimeMark in ValueTimeMark and AbstractLong/DoubleTimeMark classes.
This commit is contained in:
@@ -9,7 +9,7 @@ import kotlin.time.TimeSource.Monotonic.ValueTimeMark
|
||||
|
||||
@SinceKotlin("1.3")
|
||||
@ExperimentalTime
|
||||
internal actual object MonotonicTimeSource : TimeSource {
|
||||
internal actual object MonotonicTimeSource : TimeSource.WithComparableMarks {
|
||||
private val zero: Long = System.nanoTime()
|
||||
private fun read(): Long = System.nanoTime() - zero
|
||||
override fun toString(): String = "TimeSource(System.nanoTime())"
|
||||
@@ -18,6 +18,9 @@ internal actual object MonotonicTimeSource : TimeSource {
|
||||
actual fun elapsedFrom(timeMark: ValueTimeMark): Duration =
|
||||
saturatingDiff(read(), timeMark.reading)
|
||||
|
||||
actual fun differenceBetween(one: ValueTimeMark, another: ValueTimeMark): Duration =
|
||||
saturatingOriginsDiff(one.reading, another.reading)
|
||||
|
||||
actual fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
|
||||
ValueTimeMark(saturatingAdd(timeMark.reading, duration))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user