| ▲ | throwaway894345 14 hours ago | |||||||
How do you model cases where the reservation fails, where the inventory operation is already complete, etc? Basically conditional transitions based on some data received? Also, where does the actual I/O happen? Presumably there is some shell that drives the state machine that does the I/O before or after executing the transition? | ||||||||
| ▲ | vatsachak 12 hours ago | parent [-] | |||||||
The I/O is done using the mutable reference to the UntypedStateMachine in the functions. For example UntypedStateMachine could just be a vec that you append to or read from. If you want to model cases with failure your return type will be Result<StateMachine<Reserved>, Error> A conditional transition should return something like (StateMachine<PostConditional>, ConditionalData) | ||||||||
| ||||||||