commonMain.com.arkivanov.decompose.router.children.ChildItem.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of decompose Show documentation
Show all versions of decompose Show documentation
Kotlin Multiplatform lifecycle-aware business logic components
package com.arkivanov.decompose.router.children
import com.arkivanov.decompose.backhandler.ChildBackHandler
import com.arkivanov.essenty.instancekeeper.InstanceKeeperDispatcher
import com.arkivanov.essenty.lifecycle.LifecycleRegistry
import com.arkivanov.essenty.statekeeper.SerializableContainer
import com.arkivanov.essenty.statekeeper.StateKeeperDispatcher
internal sealed interface ChildItem {
val configuration: C
val instance: T?
data class Created(
override val configuration: C,
override val instance: T,
val lifecycleRegistry: LifecycleRegistry,
val stateKeeperDispatcher: StateKeeperDispatcher,
val instanceKeeperDispatcher: InstanceKeeperDispatcher,
val backHandler: ChildBackHandler,
) : ChildItem
data class Destroyed(
override val configuration: C,
val savedState: SerializableContainer? = null
) : ChildItem {
override val instance: Nothing? = null
}
}