diff --git a/mvvm-livedata/api/mvvm-livedata.api b/mvvm-livedata/api/mvvm-livedata.api index a2c9fa49..c332eb27 100644 --- a/mvvm-livedata/api/mvvm-livedata.api +++ b/mvvm-livedata/api/mvvm-livedata.api @@ -11,10 +11,15 @@ public final class dev/icerock/moko/mvvm/livedata/CheckBoxBindingsKt { } public abstract interface class dev/icerock/moko/mvvm/livedata/Closeable { + public static final field Companion Ldev/icerock/moko/mvvm/livedata/Closeable$Companion; public abstract fun close ()V public abstract fun plus (Ldev/icerock/moko/mvvm/livedata/Closeable;)Ldev/icerock/moko/mvvm/livedata/Closeable; } +public final class dev/icerock/moko/mvvm/livedata/Closeable$Companion { + public final fun invoke (Lkotlin/jvm/functions/Function0;)Ldev/icerock/moko/mvvm/livedata/Closeable; +} + public final class dev/icerock/moko/mvvm/livedata/Closeable$DefaultImpls { public static fun plus (Ldev/icerock/moko/mvvm/livedata/Closeable;Ldev/icerock/moko/mvvm/livedata/Closeable;)Ldev/icerock/moko/mvvm/livedata/Closeable; } diff --git a/mvvm-livedata/src/commonMain/kotlin/dev/icerock/moko/mvvm/livedata/Closeable.kt b/mvvm-livedata/src/commonMain/kotlin/dev/icerock/moko/mvvm/livedata/Closeable.kt index c16c9f2f..62541b40 100644 --- a/mvvm-livedata/src/commonMain/kotlin/dev/icerock/moko/mvvm/livedata/Closeable.kt +++ b/mvvm-livedata/src/commonMain/kotlin/dev/icerock/moko/mvvm/livedata/Closeable.kt @@ -4,7 +4,7 @@ package dev.icerock.moko.mvvm.livedata -fun interface Closeable { +interface Closeable { fun close() operator fun plus(other: Closeable): Closeable { @@ -13,4 +13,14 @@ fun interface Closeable { other.close() } } + + companion object { + operator fun invoke(block: () -> Unit): Closeable { + return object : Closeable { + override fun close() { + block() + } + } + } + } }