Skip to content

Commit

Permalink
Merge pull request #135 from arkivanov/stable-dsl
Browse files Browse the repository at this point in the history
Promoted DSL APIs to stable
  • Loading branch information
arkivanov committed Apr 27, 2024
2 parents 5073f2f + 2a9c81a commit 1350f82
Show file tree
Hide file tree
Showing 14 changed files with 0 additions and 38 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.coroutines

import com.arkivanov.mvikotlin.core.store.Bootstrapper
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.arkivanov.mvikotlin.core.utils.internal.atomic
import com.arkivanov.mvikotlin.core.utils.internal.initialize
import com.arkivanov.mvikotlin.core.utils.internal.requireValue
Expand All @@ -16,7 +15,6 @@ import kotlin.coroutines.CoroutineContext
* @param mainContext main [CoroutineContext] to be used by default when launching coroutines, default value is [Dispatchers.Main].
* @param handler invoked when the [Bootstrapper] is invoked by the [Store][com.arkivanov.mvikotlin.core.store.Store].
*/
@ExperimentalMviKotlinApi
fun <Action : Any> coroutineBootstrapper(
mainContext: CoroutineContext = Dispatchers.Main,
handler: CoroutineBootstrapperScope<Action>.() -> Unit,
Expand All @@ -27,7 +25,6 @@ fun <Action : Any> coroutineBootstrapper(
}
}

@ExperimentalMviKotlinApi
private abstract class AbstractBootstrapper<Action : Any>(
private val scope: CoroutineScope,
) : Bootstrapper<Action>, CoroutineBootstrapperScope<Action>, CoroutineScope by scope {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.coroutines

import com.arkivanov.mvikotlin.core.annotations.MainThread
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import kotlinx.coroutines.CoroutineScope

/**
Expand All @@ -12,7 +11,6 @@ import kotlinx.coroutines.CoroutineScope
*
* @see coroutineBootstrapper
*/
@ExperimentalMviKotlinApi
interface CoroutineBootstrapperScope<in Action : Any> : CoroutineScope {

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.coroutines

import com.arkivanov.mvikotlin.core.store.Executor
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.arkivanov.mvikotlin.core.utils.internal.atomic
import com.arkivanov.mvikotlin.core.utils.internal.initialize
import com.arkivanov.mvikotlin.core.utils.internal.requireValue
Expand All @@ -16,7 +15,6 @@ import kotlin.coroutines.CoroutineContext
* @param mainContext main [CoroutineContext] to be used by default when launching coroutines, default value is [Dispatchers.Main].
* @param block configures the [Executor], called for every new instance.
*/
@ExperimentalMviKotlinApi
fun <Intent : Any, Action : Any, State : Any, Message : Any, Label : Any> coroutineExecutorFactory(
mainContext: CoroutineContext = Dispatchers.Main,
block: ExecutorBuilder<Intent, Action, State, Message, Label>.() -> Unit,
Expand All @@ -28,7 +26,6 @@ fun <Intent : Any, Action : Any, State : Any, Message : Any, Label : Any> corout
)
}

@ExperimentalMviKotlinApi
private fun <Intent : Any, Action : Any, State : Any, Message : Any, Label : Any> executor(
mainContext: CoroutineContext,
block: ExecutorBuilder<Intent, Action, State, Message, Label>.() -> Unit,
Expand All @@ -43,7 +40,6 @@ private fun <Intent : Any, Action : Any, State : Any, Message : Any, Label : Any
)
}

@ExperimentalMviKotlinApi
@CoroutineExecutorDslMaker
class ExecutorBuilder<Intent : Any, Action : Any, State : Any, Message : Any, Label : Any> internal constructor() {

Expand Down Expand Up @@ -90,7 +86,6 @@ class ExecutorBuilder<Intent : Any, Action : Any, State : Any, Message : Any, La
}
}

@ExperimentalMviKotlinApi
private class ExecutorImpl<in Intent : Any, Action : Any, State : Any, Message : Any, Label : Any>(
private val scope: CoroutineScope,
private val intentHandlers: List<CoroutineExecutorScope<State, Message, Action, Label>.(Intent) -> Boolean>,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.coroutines

import com.arkivanov.mvikotlin.core.annotations.MainThread
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import kotlinx.coroutines.CoroutineScope

/**
Expand All @@ -12,7 +11,6 @@ import kotlinx.coroutines.CoroutineScope
*
* @see coroutineExecutorFactory
*/
@ExperimentalMviKotlinApi
@CoroutineExecutorDslMaker
interface CoroutineExecutorScope<out State : Any, in Message : Any, in Action : Any, in Label : Any> : CoroutineScope {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.arkivanov.mvikotlin.extensions.coroutines

import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
Expand All @@ -9,7 +8,6 @@ import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue

@OptIn(ExperimentalMviKotlinApi::class)
@Suppress("TestFunctionName")
class CoroutineBootstrapperDslTest {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.coroutines

import com.arkivanov.mvikotlin.core.test.internal.DefaultExecutorCallbacks
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.launch
Expand All @@ -12,7 +11,6 @@ import kotlin.test.assertNull
import kotlin.test.assertTrue

@Suppress("TestFunctionName")
@OptIn(ExperimentalMviKotlinApi::class)
class CoroutineExecutorDslTest {

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.reaktive

import com.arkivanov.mvikotlin.core.store.Bootstrapper
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.arkivanov.mvikotlin.core.utils.internal.atomic
import com.arkivanov.mvikotlin.core.utils.internal.initialize
import com.arkivanov.mvikotlin.core.utils.internal.requireValue
Expand All @@ -12,15 +11,13 @@ import com.badoo.reaktive.disposable.scope.DisposableScope
*
* @param handler invoked when the [Bootstrapper] is invoked by the [Store][com.arkivanov.mvikotlin.core.store.Store].
*/
@ExperimentalMviKotlinApi
fun <Action : Any> reaktiveBootstrapper(handler: ReaktiveBootstrapperScope<Action>.() -> Unit): Bootstrapper<Action> =
object : AbstractBootstrapper<Action>() {
override fun invoke() {
handler()
}
}

@ExperimentalMviKotlinApi
private abstract class AbstractBootstrapper<Action : Any>(
private val scope: DisposableScope = DisposableScope(),
) : Bootstrapper<Action>, ReaktiveBootstrapperScope<Action>, DisposableScope by scope {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.arkivanov.mvikotlin.extensions.reaktive

import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.badoo.reaktive.disposable.scope.DisposableScope

/**
Expand All @@ -11,7 +10,6 @@ import com.badoo.reaktive.disposable.scope.DisposableScope
*
* @see reaktiveBootstrapper
*/
@ExperimentalMviKotlinApi
interface ReaktiveBootstrapperScope<in Action : Any> : DisposableScope {

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.reaktive

import com.arkivanov.mvikotlin.core.store.Executor
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.arkivanov.mvikotlin.core.utils.internal.atomic
import com.arkivanov.mvikotlin.core.utils.internal.initialize
import com.arkivanov.mvikotlin.core.utils.internal.requireValue
Expand All @@ -12,15 +11,13 @@ import com.badoo.reaktive.disposable.scope.DisposableScope
*
* @param block configures the [Executor], called for every new instance.
*/
@ExperimentalMviKotlinApi
fun <Intent : Any, Action : Any, State : Any, Message : Any, Label : Any> reaktiveExecutorFactory(
block: ExecutorBuilder<Intent, Action, State, Message, Label>.() -> Unit,
): () -> Executor<Intent, Action, State, Message, Label> =
{
executor(block)
}

@ExperimentalMviKotlinApi
private fun <Intent : Any, Action : Any, State : Any, Message : Any, Label : Any> executor(
block: ExecutorBuilder<Intent, Action, State, Message, Label>.() -> Unit,
): Executor<Intent, Action, State, Message, Label> {
Expand All @@ -33,7 +30,6 @@ private fun <Intent : Any, Action : Any, State : Any, Message : Any, Label : Any
)
}

@ExperimentalMviKotlinApi
@ReaktiveExecutorDslMaker
class ExecutorBuilder<Intent : Any, Action : Any, State : Any, Message : Any, Label : Any> internal constructor() {

Expand Down Expand Up @@ -80,7 +76,6 @@ class ExecutorBuilder<Intent : Any, Action : Any, State : Any, Message : Any, La
}
}

@ExperimentalMviKotlinApi
private class ExecutorImpl<in Intent : Any, Action : Any, State : Any, Message : Any, Label : Any>(
private val intentHandlers: List<ReaktiveExecutorScope<State, Message, Action, Label>.(Intent) -> Boolean>,
private val actionHandlers: List<ReaktiveExecutorScope<State, Message, Action, Label>.(Action) -> Boolean>,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.arkivanov.mvikotlin.extensions.reaktive

import com.arkivanov.mvikotlin.core.annotations.MainThread
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.badoo.reaktive.disposable.scope.DisposableScope

/**
Expand All @@ -12,7 +11,6 @@ import com.badoo.reaktive.disposable.scope.DisposableScope
*
* @see reaktiveExecutorFactory
*/
@ExperimentalMviKotlinApi
@ReaktiveExecutorDslMaker
interface ReaktiveExecutorScope<out State : Any, in Message : Any, in Action : Any, in Label : Any> : DisposableScope {

Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
package com.arkivanov.mvikotlin.extensions.reaktive

import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.badoo.reaktive.test.base.hasSubscribers
import com.badoo.reaktive.test.observable.TestObservable
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertTrue

@OptIn(ExperimentalMviKotlinApi::class)
@Suppress("TestFunctionName")
class ReaktiveBootstrapperDslTest {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package com.arkivanov.mvikotlin.extensions.reaktive

import com.arkivanov.mvikotlin.core.store.Executor
import com.arkivanov.mvikotlin.core.test.internal.DefaultExecutorCallbacks
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.badoo.reaktive.test.base.hasSubscribers
import com.badoo.reaktive.test.observable.TestObservable
import kotlin.test.Test
Expand All @@ -11,7 +10,6 @@ import kotlin.test.assertFalse
import kotlin.test.assertNull

@Suppress("TestFunctionName")
@OptIn(ExperimentalMviKotlinApi::class)
class ReaktiveExecutorDslTest {

@Test
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
@file:OptIn(ExperimentalMviKotlinApi::class)

package com.arkivanov.mvikotlin.sample.coroutines.shared.details.store

import com.arkivanov.mvikotlin.core.store.SimpleBootstrapper
import com.arkivanov.mvikotlin.core.store.Store
import com.arkivanov.mvikotlin.core.store.StoreFactory
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.arkivanov.mvikotlin.core.utils.JvmSerializable
import com.arkivanov.mvikotlin.extensions.coroutines.CoroutineExecutorScope
import com.arkivanov.mvikotlin.extensions.coroutines.coroutineExecutorFactory
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
@file:OptIn(ExperimentalMviKotlinApi::class)

package com.arkivanov.mvikotlin.sample.reaktive.shared.details.store

import com.arkivanov.mvikotlin.core.store.SimpleBootstrapper
import com.arkivanov.mvikotlin.core.store.Store
import com.arkivanov.mvikotlin.core.store.StoreFactory
import com.arkivanov.mvikotlin.core.utils.ExperimentalMviKotlinApi
import com.arkivanov.mvikotlin.core.utils.JvmSerializable
import com.arkivanov.mvikotlin.extensions.reaktive.ReaktiveExecutorScope
import com.arkivanov.mvikotlin.extensions.reaktive.reaktiveExecutorFactory
Expand Down

0 comments on commit 1350f82

Please sign in to comment.