package it.vfsfitvnm.route import android.annotation.SuppressLint import androidx.compose.runtime.Composable import androidx.compose.runtime.Immutable @Immutable class RouteHandlerScope( val route: Route?, private val push: (Route?) -> Unit, val pop: () -> Unit, ) { @SuppressLint("ComposableNaming") @Composable inline fun host(content: @Composable () -> Unit) { if (route == null) { content() } } operator fun Route0.invoke() { push(this) } operator fun Route1.invoke( p0: P0 = this.p0 ) { this.p0 = p0 push(this) } operator fun Route2.invoke( p0: P0 = this.p0, p1: P1 = this.p1 ) { this.p0 = p0 this.p1 = p1 push(this) } }