Make TimeMark returned by TimeSource.Monotonic a value class
This value class wraps Long on JVM and Native thus reducing allocations in time measurement scenarios when the default monotonic time source is statically known. KT-46132
This commit is contained in:
@@ -142,10 +142,18 @@ public inline operator fun kotlin.time.TimeMark.compareTo(other: kotlin.time.Tim
|
||||
@kotlin.time.ExperimentalTime
|
||||
public inline fun kotlin.time.TimeSource.measureTime(block: () -> kotlin.Unit): kotlin.time.Duration
|
||||
|
||||
@kotlin.SinceKotlin(version = "1.7")
|
||||
@kotlin.time.ExperimentalTime
|
||||
public inline fun kotlin.time.TimeSource.Monotonic.measureTime(block: () -> kotlin.Unit): kotlin.time.Duration
|
||||
|
||||
@kotlin.SinceKotlin(version = "1.3")
|
||||
@kotlin.time.ExperimentalTime
|
||||
public inline fun <T> kotlin.time.TimeSource.measureTimedValue(block: () -> T): kotlin.time.TimedValue<T>
|
||||
|
||||
@kotlin.SinceKotlin(version = "1.7")
|
||||
@kotlin.time.ExperimentalTime
|
||||
public inline fun <T> kotlin.time.TimeSource.Monotonic.measureTimedValue(block: () -> T): kotlin.time.TimedValue<T>
|
||||
|
||||
@kotlin.time.ExperimentalTime
|
||||
@kotlin.SinceKotlin(version = "1.3")
|
||||
@kotlin.internal.InlineOnly
|
||||
@@ -198,6 +206,27 @@ public abstract class AbstractLongTimeSource : kotlin.time.TimeSource {
|
||||
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.WasExperimental(markerClass = {kotlin.time.ExperimentalTime::class})
|
||||
@kotlin.jvm.JvmInline
|
||||
@@ -550,14 +579,12 @@ public final class TestTimeSource : kotlin.time.AbstractLongTimeSource {
|
||||
|
||||
@kotlin.SinceKotlin(version = "1.3")
|
||||
@kotlin.time.ExperimentalTime
|
||||
public abstract class TimeMark {
|
||||
public constructor TimeMark()
|
||||
|
||||
public interface TimeMark {
|
||||
public abstract fun elapsedNow(): kotlin.time.Duration
|
||||
|
||||
public final fun hasNotPassedNow(): kotlin.Boolean
|
||||
public open fun hasNotPassedNow(): kotlin.Boolean
|
||||
|
||||
public final fun hasPassedNow(): kotlin.Boolean
|
||||
public open fun hasPassedNow(): kotlin.Boolean
|
||||
|
||||
public open operator fun minus(duration: kotlin.time.Duration): kotlin.time.TimeMark
|
||||
|
||||
@@ -573,7 +600,7 @@ public interface TimeSource {
|
||||
}
|
||||
|
||||
public object Monotonic : kotlin.time.TimeSource {
|
||||
public open override fun markNow(): kotlin.time.TimeMark
|
||||
public open override fun markNow(): kotlin.time.DefaultTimeMark
|
||||
|
||||
public open override fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user