diff --git a/api/time.api b/api/time.api index 6e815c7..f87e131 100644 --- a/api/time.api +++ b/api/time.api @@ -170,6 +170,7 @@ public final class Relation : java/lang/Enum { public static final field Meets LRelation; public static final field Overlaps LRelation; public static final field Starts LRelation; + public static fun getEntries ()Lkotlin/enums/EnumEntries; public final fun isDisjoint ()Z public final fun isEqual ()Z public final fun isMeeting ()Z diff --git a/build.gradle.kts b/build.gradle.kts index 30351d8..81f4799 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - kotlin("multiplatform") version "1.8.22" + kotlin("multiplatform") version "1.9.0" `maven-publish` id("signing") id("org.jetbrains.kotlinx.binary-compatibility-validator") version "0.13.2" diff --git a/src/appleMain/kotlin/Interop.kt b/src/appleMain/kotlin/Interop.kt index c352b55..bc52572 100644 --- a/src/appleMain/kotlin/Interop.kt +++ b/src/appleMain/kotlin/Interop.kt @@ -1,3 +1,4 @@ +import kotlinx.cinterop.ExperimentalForeignApi import kotlinx.cinterop.UnsafeNumber import kotlinx.cinterop.convert import kotlinx.datetime.FixedOffsetTimeZone @@ -8,6 +9,7 @@ import platform.Foundation.timeZoneForSecondsFromGMT import platform.Foundation.timeZoneWithAbbreviation import platform.Foundation.timeZoneWithName +@ExperimentalForeignApi @UnsafeNumber(["ios_arm64: kotlin.Int", "ios_simulator_arm64: kotlin.Int", "ios_x64: kotlin.Int", "macos_arm64: kotlin.Int", "macos_x64: kotlin.Int", "tvos_arm64: kotlin.Int", "tvos_simulator_arm64: kotlin.Int", "tvos_x64: kotlin.Int", "watchos_arm32: kotlin.Int", "watchos_arm64: kotlin.Int", "watchos_simulator_arm64: kotlin.Int", "watchos_x64: kotlin.Int"]) public fun TimePeriod<*>.toNSDateComponents(): NSDateComponents { val dateComponents = NSDateComponents() @@ -32,6 +34,8 @@ public fun TimePeriod<*>.toNSDateComponents(): NSDateComponents { * `DateTimeException` to denote that lossy conversion would happen, as Darwin internally rounds the offsets to the * nearest minute. */ +@ExperimentalForeignApi +@UnsafeNumber(["ios_arm64: kotlin.Int", "ios_simulator_arm64: kotlin.Int", "ios_x64: kotlin.Int", "macos_arm64: kotlin.Int", "macos_x64: kotlin.Int", "tvos_arm64: kotlin.Int", "tvos_simulator_arm64: kotlin.Int", "tvos_x64: kotlin.Int", "watchos_arm32: kotlin.Int", "watchos_arm64: kotlin.Int", "watchos_simulator_arm64: kotlin.Int", "watchos_x64: kotlin.Int"]) private fun TimeZone.toNSTimeZone(): NSTimeZone = if (this is FixedOffsetTimeZone) { require(offset.totalSeconds % 60 == 0) { "NSTimeZone cannot represent fixed-offset time zones with offsets not expressed in whole minutes: $this"