rememberStateMachine

fun <T : StateMachine<S, *, *>, S : State> rememberStateMachine(vararg inputs: Any?, initialState: S, key: String? = null, init: (state: S) -> T): T

Remember a StateMachine that is remembered across compositions and configuration changes.

Samples

import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue
import androidx.compose.runtime.rememberCoroutineScope
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import io.github.ryunen344.mutton.compose.rememberStateMachine

fun main() { 
   //sampleStart 
   val coroutineScope = rememberCoroutineScope()
val stateMachine = rememberStateMachine<MatterStateMachine, MatterState>(initialState = MatterState.Solid) { state ->
    MatterStateMachine(initialState = state, context = coroutineScope.coroutineContext)
}

val state by stateMachine.state.collectAsStateWithLifecycle()

LaunchedEffect(state) {
    println("MatterStateMachine state: $state")
} 
   //sampleEnd
}