Rename DefaultTimeMark to TimeSource.Monotonic.ValueTimeMark

This commit is contained in:
Ilya Gorbunov
2022-04-14 06:35:33 +03:00
committed by Space
parent 4ab0f7deeb
commit a03999fe81
9 changed files with 147 additions and 138 deletions
@@ -6,6 +6,7 @@
package kotlin.time package kotlin.time
import kotlin.system.* import kotlin.system.*
import kotlin.time.TimeSource.Monotonic.ValueTimeMark
@SinceKotlin("1.3") @SinceKotlin("1.3")
@ExperimentalTime @ExperimentalTime
@@ -14,13 +15,13 @@ internal actual object MonotonicTimeSource : TimeSource {
private fun read(): Long = getTimeNanos() - zero private fun read(): Long = getTimeNanos() - zero
override fun toString(): String = "TimeSource(System.nanoTime())" override fun toString(): String = "TimeSource(System.nanoTime())"
actual override fun markNow(): DefaultTimeMark = DefaultTimeMark(read()) actual override fun markNow(): ValueTimeMark = ValueTimeMark(read())
actual fun elapsedFrom(timeMark: DefaultTimeMark): Duration = actual fun elapsedFrom(timeMark: ValueTimeMark): Duration =
saturatingDiff(read(), timeMark.reading) saturatingDiff(read(), timeMark.reading)
actual fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark = actual fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
DefaultTimeMark(saturatingAdd(timeMark.reading, duration)) ValueTimeMark(saturatingAdd(timeMark.reading, duration))
} }
@Suppress("ACTUAL_WITHOUT_EXPECT") // visibility @Suppress("ACTUAL_WITHOUT_EXPECT") // visibility
internal actual typealias DefaultTimeMarkReading = Long internal actual typealias ValueTimeMarkReading = Long
+22 -22
View File
@@ -206,27 +206,6 @@ public abstract class AbstractLongTimeSource : kotlin.time.TimeSource {
protected abstract fun read(): kotlin.Long protected abstract fun read(): kotlin.Long
} }
@kotlin.time.ExperimentalTime
@kotlin.SinceKotlin(version = "1.7")
@kotlin.jvm.JvmInline
public final inline class DefaultTimeMark : kotlin.time.TimeMark {
public open override fun elapsedNow(): kotlin.time.Duration
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
public open override fun hasNotPassedNow(): kotlin.Boolean
public open override fun hasPassedNow(): kotlin.Boolean
public open override fun hashCode(): kotlin.Int
public open override operator fun minus(duration: kotlin.time.Duration): kotlin.time.DefaultTimeMark
public open override operator fun plus(duration: kotlin.time.Duration): kotlin.time.DefaultTimeMark
public open override fun toString(): kotlin.String
}
@kotlin.SinceKotlin(version = "1.6") @kotlin.SinceKotlin(version = "1.6")
@kotlin.WasExperimental(markerClass = {kotlin.time.ExperimentalTime::class}) @kotlin.WasExperimental(markerClass = {kotlin.time.ExperimentalTime::class})
@kotlin.jvm.JvmInline @kotlin.jvm.JvmInline
@@ -600,9 +579,30 @@ public interface TimeSource {
} }
public object Monotonic : kotlin.time.TimeSource { public object Monotonic : kotlin.time.TimeSource {
public open override fun markNow(): kotlin.time.DefaultTimeMark public open override fun markNow(): kotlin.time.TimeSource.Monotonic.ValueTimeMark
public open override fun toString(): kotlin.String public open override fun toString(): kotlin.String
@kotlin.time.ExperimentalTime
@kotlin.SinceKotlin(version = "1.7")
@kotlin.jvm.JvmInline
public final inline class ValueTimeMark : kotlin.time.TimeMark {
public open override fun elapsedNow(): kotlin.time.Duration
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
public open override fun hasNotPassedNow(): kotlin.Boolean
public open override fun hasPassedNow(): kotlin.Boolean
public open override fun hashCode(): kotlin.Int
public open override operator fun minus(duration: kotlin.time.Duration): kotlin.time.TimeSource.Monotonic.ValueTimeMark
public open override operator fun plus(duration: kotlin.time.Duration): kotlin.time.TimeSource.Monotonic.ValueTimeMark
public open override fun toString(): kotlin.String
}
} }
} }
+22 -22
View File
@@ -206,27 +206,6 @@ public abstract class AbstractLongTimeSource : kotlin.time.TimeSource {
protected abstract fun read(): kotlin.Long protected abstract fun read(): kotlin.Long
} }
@kotlin.time.ExperimentalTime
@kotlin.SinceKotlin(version = "1.7")
@kotlin.jvm.JvmInline
public final inline class DefaultTimeMark : kotlin.time.TimeMark {
public open override fun elapsedNow(): kotlin.time.Duration
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
public open override fun hasNotPassedNow(): kotlin.Boolean
public open override fun hasPassedNow(): kotlin.Boolean
public open override fun hashCode(): kotlin.Int
public open override operator fun minus(duration: kotlin.time.Duration): kotlin.time.DefaultTimeMark
public open override operator fun plus(duration: kotlin.time.Duration): kotlin.time.DefaultTimeMark
public open override fun toString(): kotlin.String
}
@kotlin.SinceKotlin(version = "1.6") @kotlin.SinceKotlin(version = "1.6")
@kotlin.WasExperimental(markerClass = {kotlin.time.ExperimentalTime::class}) @kotlin.WasExperimental(markerClass = {kotlin.time.ExperimentalTime::class})
@kotlin.jvm.JvmInline @kotlin.jvm.JvmInline
@@ -600,9 +579,30 @@ public interface TimeSource {
} }
public object Monotonic : kotlin.time.TimeSource { public object Monotonic : kotlin.time.TimeSource {
public open override fun markNow(): kotlin.time.DefaultTimeMark public open override fun markNow(): kotlin.time.TimeSource.Monotonic.ValueTimeMark
public open override fun toString(): kotlin.String public open override fun toString(): kotlin.String
@kotlin.time.ExperimentalTime
@kotlin.SinceKotlin(version = "1.7")
@kotlin.jvm.JvmInline
public final inline class ValueTimeMark : kotlin.time.TimeMark {
public open override fun elapsedNow(): kotlin.time.Duration
public open override operator fun equals(other: kotlin.Any?): kotlin.Boolean
public open override fun hasNotPassedNow(): kotlin.Boolean
public open override fun hasPassedNow(): kotlin.Boolean
public open override fun hashCode(): kotlin.Int
public open override operator fun minus(duration: kotlin.time.Duration): kotlin.time.TimeSource.Monotonic.ValueTimeMark
public open override operator fun plus(duration: kotlin.time.Duration): kotlin.time.TimeSource.Monotonic.ValueTimeMark
public open override fun toString(): kotlin.String
}
} }
} }
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -9,15 +9,16 @@ import org.w3c.performance.GlobalPerformance
import org.w3c.performance.Performance import org.w3c.performance.Performance
import kotlin.math.truncate import kotlin.math.truncate
import kotlin.time.Duration.Companion.milliseconds import kotlin.time.Duration.Companion.milliseconds
import kotlin.time.TimeSource.Monotonic.ValueTimeMark
@Suppress("ACTUAL_WITHOUT_EXPECT") // visibility @Suppress("ACTUAL_WITHOUT_EXPECT") // visibility
internal actual typealias DefaultTimeMarkReading = Any internal actual typealias ValueTimeMarkReading = Any
@ExperimentalTime @ExperimentalTime
internal interface DefaultTimeSource : TimeSource { internal interface DefaultTimeSource : TimeSource {
override fun markNow(): DefaultTimeMark override fun markNow(): ValueTimeMark
fun elapsedFrom(timeMark: DefaultTimeMark): Duration fun elapsedFrom(timeMark: ValueTimeMark): Duration
fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark
} }
@SinceKotlin("1.3") @SinceKotlin("1.3")
@@ -35,9 +36,9 @@ internal actual object MonotonicTimeSource : DefaultTimeSource, TimeSource { //
} }
actual override fun markNow(): DefaultTimeMark = actualSource.markNow() actual override fun markNow(): ValueTimeMark = actualSource.markNow()
actual override fun elapsedFrom(timeMark: DefaultTimeMark): Duration = actualSource.elapsedFrom(timeMark) actual override fun elapsedFrom(timeMark: ValueTimeMark): Duration = actualSource.elapsedFrom(timeMark)
actual override fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark = actual override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
actualSource.adjustReading(timeMark, duration) actualSource.adjustReading(timeMark, duration)
} }
@@ -49,18 +50,19 @@ internal external interface Process {
@ExperimentalTime @ExperimentalTime
internal class HrTimeSource(private val process: Process) : DefaultTimeSource { internal class HrTimeSource(private val process: Process) : DefaultTimeSource {
override fun markNow(): DefaultTimeMark = DefaultTimeMark(process.hrtime()) override fun markNow(): ValueTimeMark = ValueTimeMark(process.hrtime())
override fun elapsedFrom(timeMark: DefaultTimeMark): Duration = override fun elapsedFrom(timeMark: ValueTimeMark): Duration =
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
process.hrtime(timeMark.reading as Array<Double>).let { (seconds, nanos) -> seconds.toDuration(DurationUnit.SECONDS) + nanos.toDuration(DurationUnit.NANOSECONDS) } process.hrtime(timeMark.reading as Array<Double>)
.let { (seconds, nanos) -> seconds.toDuration(DurationUnit.SECONDS) + nanos.toDuration(DurationUnit.NANOSECONDS) }
override fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark = override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
(timeMark.reading as Array<Double>).let { (seconds, nanos) -> (timeMark.reading as Array<Double>).let { (seconds, nanos) ->
duration.toComponents { _, addNanos -> duration.toComponents { _, addNanos ->
arrayOf<Double>(sumCheckNaN(seconds + truncate(duration.toDouble(DurationUnit.SECONDS))), nanos + addNanos) arrayOf<Double>(sumCheckNaN(seconds + truncate(duration.toDouble(DurationUnit.SECONDS))), nanos + addNanos)
} }
}.let(::DefaultTimeMark) }.let(TimeSource.Monotonic::ValueTimeMark)
override fun toString(): String = "TimeSource(process.hrtime())" override fun toString(): String = "TimeSource(process.hrtime())"
@@ -68,13 +70,14 @@ internal class HrTimeSource(private val process: Process) : DefaultTimeSource {
@SinceKotlin("1.3") @SinceKotlin("1.3")
@ExperimentalTime @ExperimentalTime
internal class PerformanceTimeSource(val performance: Performance) : DefaultTimeSource { // AbstractDoubleTimeSource(unit = DurationUnit.MILLISECONDS) { internal class PerformanceTimeSource(val performance: Performance) :
DefaultTimeSource { // AbstractDoubleTimeSource(unit = DurationUnit.MILLISECONDS) {
private fun read(): Double = performance.now() private fun read(): Double = performance.now()
override fun markNow(): DefaultTimeMark = DefaultTimeMark(read()) override fun markNow(): ValueTimeMark = ValueTimeMark(read())
override fun elapsedFrom(timeMark: DefaultTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds override fun elapsedFrom(timeMark: ValueTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds
override fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark = override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
DefaultTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS))) ValueTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS)))
override fun toString(): String = "TimeSource(self.performance.now())" override fun toString(): String = "TimeSource(self.performance.now())"
} }
@@ -84,10 +87,10 @@ internal class PerformanceTimeSource(val performance: Performance) : DefaultTime
internal object DateNowTimeSource : DefaultTimeSource { internal object DateNowTimeSource : DefaultTimeSource {
private fun read(): Double = kotlin.js.Date.now() private fun read(): Double = kotlin.js.Date.now()
override fun markNow(): DefaultTimeMark = DefaultTimeMark(read()) override fun markNow(): ValueTimeMark = ValueTimeMark(read())
override fun elapsedFrom(timeMark: DefaultTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds override fun elapsedFrom(timeMark: ValueTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds
override fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark = override fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
DefaultTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS))) ValueTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS)))
override fun toString(): String = "TimeSource(Date.now())" override fun toString(): String = "TimeSource(Date.now())"
} }
@@ -1,10 +1,12 @@
/* /*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
package kotlin.time package kotlin.time
import kotlin.time.TimeSource.Monotonic.ValueTimeMark
@SinceKotlin("1.3") @SinceKotlin("1.3")
@ExperimentalTime @ExperimentalTime
internal actual object MonotonicTimeSource : TimeSource { internal actual object MonotonicTimeSource : TimeSource {
@@ -12,15 +14,13 @@ internal actual object MonotonicTimeSource : TimeSource {
private fun read(): Long = System.nanoTime() - zero private fun read(): Long = System.nanoTime() - zero
override fun toString(): String = "TimeSource(System.nanoTime())" override fun toString(): String = "TimeSource(System.nanoTime())"
actual override fun markNow(): DefaultTimeMark = DefaultTimeMark(read()) actual override fun markNow(): ValueTimeMark = ValueTimeMark(read())
actual fun elapsedFrom(timeMark: DefaultTimeMark): Duration = actual fun elapsedFrom(timeMark: ValueTimeMark): Duration =
saturatingDiff(read(), timeMark.reading) saturatingDiff(read(), timeMark.reading)
actual fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark = actual fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
DefaultTimeMark(saturatingAdd(timeMark.reading, duration)) ValueTimeMark(saturatingAdd(timeMark.reading, duration))
} }
@Suppress("ACTUAL_WITHOUT_EXPECT") // visibility @Suppress("ACTUAL_WITHOUT_EXPECT") // visibility
internal actual typealias DefaultTimeMarkReading = Long internal actual typealias ValueTimeMarkReading = Long
+29 -25
View File
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -31,18 +31,44 @@ public interface TimeSource {
* *
* This time source returns its readings from a source of monotonic time when it is available in a target platform, * This time source returns its readings from a source of monotonic time when it is available in a target platform,
* and resorts to a non-monotonic time source otherwise. * and resorts to a non-monotonic time source otherwise.
*
* The function [markNow] of this time source returns the specialized [ValueTimeMark] that is an inline value class
* wrapping a platform-dependent time reading value.
*/ */
public object Monotonic : TimeSource { public object Monotonic : TimeSource {
override fun markNow(): DefaultTimeMark = MonotonicTimeSource.markNow() override fun markNow(): ValueTimeMark = MonotonicTimeSource.markNow()
override fun toString(): String = MonotonicTimeSource.toString() override fun toString(): String = MonotonicTimeSource.toString()
}
/**
* A specialized [kotlin.time.TimeMark] returned by [TimeSource.Monotonic].
*
* This time mark is implemented as an inline value class wrapping a platform-dependent
* time reading value of the default monotonic time source, thus allowing to avoid additional boxing
* of that value.
*
* The operations [plus] and [minus] are also specialized to return [ValueTimeMark] type.
*/
@ExperimentalTime
@SinceKotlin("1.7")
@JvmInline
public value class ValueTimeMark internal constructor(internal val reading: ValueTimeMarkReading) : TimeMark {
override fun elapsedNow(): Duration = MonotonicTimeSource.elapsedFrom(this)
override fun plus(duration: Duration): ValueTimeMark = MonotonicTimeSource.adjustReading(this, duration)
override fun minus(duration: Duration): ValueTimeMark = MonotonicTimeSource.adjustReading(this, -duration)
override fun hasPassedNow(): Boolean = !elapsedNow().isNegative()
override fun hasNotPassedNow(): Boolean = elapsedNow().isNegative()
}
}
public companion object { public companion object {
} }
} }
/** A platform-specific reading type that is wrapped by [TimeSource.Monotonic.ValueTimeMark] inline class. */
internal expect class ValueTimeMarkReading
/** /**
* Represents a time point notched on a particular [TimeSource]. Remains bound to the time source it was taken from * Represents a time point notched on a particular [TimeSource]. Remains bound to the time source it was taken from
* and allows querying for the duration of time elapsed from that point (see the function [elapsedNow]). * and allows querying for the duration of time elapsed from that point (see the function [elapsedNow]).
@@ -105,28 +131,6 @@ public interface TimeMark {
public fun hasNotPassedNow(): Boolean = elapsedNow().isNegative() public fun hasNotPassedNow(): Boolean = elapsedNow().isNegative()
} }
/**
* A specialized [TimeMark] returned by [TimeSource.Monotonic].
*
* This time mark is implemented as an inline value class wrapping a platform-dependent
* time reading value of the default monotonic time source, thus allowing to avoid additional boxing
* of that value.
*
* The operations [plus] and [minus] are also specialized to return [DefaultTimeMark] type.
*/
@ExperimentalTime
@SinceKotlin("1.7")
@JvmInline
public value class DefaultTimeMark internal constructor(internal val reading: DefaultTimeMarkReading) : TimeMark {
override fun elapsedNow(): Duration = MonotonicTimeSource.elapsedFrom(this)
override fun plus(duration: Duration): DefaultTimeMark = MonotonicTimeSource.adjustReading(this, duration)
override fun minus(duration: Duration): DefaultTimeMark = MonotonicTimeSource.adjustReading(this, -duration)
override fun hasPassedNow(): Boolean = !elapsedNow().isNegative()
override fun hasNotPassedNow(): Boolean = elapsedNow().isNegative()
}
internal expect class DefaultTimeMarkReading
@ExperimentalTime @ExperimentalTime
@SinceKotlin("1.3") @SinceKotlin("1.3")
@@ -1,5 +1,5 @@
/* /*
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. * Copyright 2010-2022 JetBrains s.r.o. and Kotlin Programming Language contributors.
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
*/ */
@@ -8,9 +8,9 @@ package kotlin.time
@SinceKotlin("1.3") @SinceKotlin("1.3")
@ExperimentalTime @ExperimentalTime
internal expect object MonotonicTimeSource : TimeSource { internal expect object MonotonicTimeSource : TimeSource {
override fun markNow(): DefaultTimeMark override fun markNow(): TimeSource.Monotonic.ValueTimeMark
fun elapsedFrom(timeMark: DefaultTimeMark): Duration fun elapsedFrom(timeMark: TimeSource.Monotonic.ValueTimeMark): Duration
fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark fun adjustReading(timeMark: TimeSource.Monotonic.ValueTimeMark, duration: Duration): TimeSource.Monotonic.ValueTimeMark
} }
/** /**
@@ -6,6 +6,7 @@
package kotlin.time package kotlin.time
import kotlin.wasm.internal.ExternalInterfaceType import kotlin.wasm.internal.ExternalInterfaceType
import kotlin.time.TimeSource.Monotonic.ValueTimeMark
@JsFun("() => typeof globalThis !== 'undefined' && typeof globalThis.performance !== 'undefined' ? globalThis.performance : null") @JsFun("() => typeof globalThis !== 'undefined' && typeof globalThis.performance !== 'undefined' ? globalThis.performance : null")
private external fun tryGetPerformance(): ExternalInterfaceType? private external fun tryGetPerformance(): ExternalInterfaceType?
@@ -24,16 +25,16 @@ internal actual object MonotonicTimeSource : TimeSource {
private fun read(): Double = private fun read(): Double =
if (performance != null) getPerformanceNow(performance) else dateNow() if (performance != null) getPerformanceNow(performance) else dateNow()
actual override fun markNow(): DefaultTimeMark = DefaultTimeMark(read()) actual override fun markNow(): ValueTimeMark = ValueTimeMark(read())
actual fun elapsedFrom(timeMark: DefaultTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds actual fun elapsedFrom(timeMark: ValueTimeMark): Duration = (read() - timeMark.reading as Double).milliseconds
actual fun adjustReading(timeMark: DefaultTimeMark, duration: Duration): DefaultTimeMark = actual fun adjustReading(timeMark: ValueTimeMark, duration: Duration): ValueTimeMark =
DefaultTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS))) ValueTimeMark(sumCheckNaN(timeMark.reading as Double + duration.toDouble(DurationUnit.MILLISECONDS)))
override fun toString(): String = override fun toString(): String =
if (performance != null) "TimeSource(globalThis.performance.now())" else "TimeSource(Date.now())" if (performance != null) "TimeSource(globalThis.performance.now())" else "TimeSource(Date.now())"
} }
@Suppress("ACTUAL_WITHOUT_EXPECT") // visibility @Suppress("ACTUAL_WITHOUT_EXPECT") // visibility
internal actual typealias DefaultTimeMarkReading = Double internal actual typealias ValueTimeMarkReading = Double
private fun sumCheckNaN(value: Double): Double = value.also { if (it.isNaN()) throw IllegalArgumentException("Summing infinities of different signs") } private fun sumCheckNaN(value: Double): Double = value.also { if (it.isNaN()) throw IllegalArgumentException("Summing infinities of different signs") }
@@ -5767,30 +5767,6 @@ public abstract class kotlin/time/AbstractLongTimeSource : kotlin/time/TimeSourc
protected abstract fun read ()J protected abstract fun read ()J
} }
public final class kotlin/time/DefaultTimeMark : kotlin/time/TimeMark {
public static final synthetic fun box-impl (J)Lkotlin/time/DefaultTimeMark;
public fun elapsedNow-UwyO8pc ()J
public static fun elapsedNow-UwyO8pc (J)J
public fun equals (Ljava/lang/Object;)Z
public static fun equals-impl (JLjava/lang/Object;)Z
public static final fun equals-impl0 (JJ)Z
public fun hasNotPassedNow ()Z
public static fun hasNotPassedNow-impl (J)Z
public fun hasPassedNow ()Z
public static fun hasPassedNow-impl (J)Z
public fun hashCode ()I
public static fun hashCode-impl (J)I
public fun minus-LRDsOJo (J)J
public synthetic fun minus-LRDsOJo (J)Lkotlin/time/TimeMark;
public static fun minus-LRDsOJo (JJ)J
public fun plus-LRDsOJo (J)J
public synthetic fun plus-LRDsOJo (J)Lkotlin/time/TimeMark;
public static fun plus-LRDsOJo (JJ)J
public fun toString ()Ljava/lang/String;
public static fun toString-impl (J)Ljava/lang/String;
public final synthetic fun unbox-impl ()J
}
public final class kotlin/time/Duration : java/lang/Comparable { public final class kotlin/time/Duration : java/lang/Comparable {
public static final field Companion Lkotlin/time/Duration$Companion; public static final field Companion Lkotlin/time/Duration$Companion;
public static final synthetic fun box-impl (J)Lkotlin/time/Duration; public static final synthetic fun box-impl (J)Lkotlin/time/Duration;
@@ -5964,10 +5940,34 @@ public final class kotlin/time/TimeSource$Companion {
public final class kotlin/time/TimeSource$Monotonic : kotlin/time/TimeSource { public final class kotlin/time/TimeSource$Monotonic : kotlin/time/TimeSource {
public static final field INSTANCE Lkotlin/time/TimeSource$Monotonic; public static final field INSTANCE Lkotlin/time/TimeSource$Monotonic;
public synthetic fun markNow ()Lkotlin/time/TimeMark; public synthetic fun markNow ()Lkotlin/time/TimeMark;
public fun markNow-GKr6HC4 ()J public fun markNow-z9LOYto ()J
public fun toString ()Ljava/lang/String; public fun toString ()Ljava/lang/String;
} }
public final class kotlin/time/TimeSource$Monotonic$ValueTimeMark : kotlin/time/TimeMark {
public static final synthetic fun box-impl (J)Lkotlin/time/TimeSource$Monotonic$ValueTimeMark;
public fun elapsedNow-UwyO8pc ()J
public static fun elapsedNow-UwyO8pc (J)J
public fun equals (Ljava/lang/Object;)Z
public static fun equals-impl (JLjava/lang/Object;)Z
public static final fun equals-impl0 (JJ)Z
public fun hasNotPassedNow ()Z
public static fun hasNotPassedNow-impl (J)Z
public fun hasPassedNow ()Z
public static fun hasPassedNow-impl (J)Z
public fun hashCode ()I
public static fun hashCode-impl (J)I
public fun minus-LRDsOJo (J)J
public synthetic fun minus-LRDsOJo (J)Lkotlin/time/TimeMark;
public static fun minus-LRDsOJo (JJ)J
public fun plus-LRDsOJo (J)J
public synthetic fun plus-LRDsOJo (J)Lkotlin/time/TimeMark;
public static fun plus-LRDsOJo (JJ)J
public fun toString ()Ljava/lang/String;
public static fun toString-impl (J)Ljava/lang/String;
public final synthetic fun unbox-impl ()J
}
public final class kotlin/time/TimedValue { public final class kotlin/time/TimedValue {
public synthetic fun <init> (Ljava/lang/Object;JLkotlin/jvm/internal/DefaultConstructorMarker;)V public synthetic fun <init> (Ljava/lang/Object;JLkotlin/jvm/internal/DefaultConstructorMarker;)V
public final fun component1 ()Ljava/lang/Object; public final fun component1 ()Ljava/lang/Object;