Comment by vatsachak
5 hours ago
In the type state pattern you would have something like this
pub trait ValidState {}
struct StateMachine<'a, T>
where
T: ValidState {
untyped: &'a mut UntypedStateMachine,
_marker: PhantomData<T>
}
fn reserve_right<'a>(state: StateMachine<'a, Begin>) -> StateMachine<'a, Reserved>
fn query<'a>(state: StateMachine<'a, Reserved>) -> StateMachine<'a, Queried>
fn record<'a>(state: StateMachine<'a, Queried>) -> StateMachine<'a, Recorded>
No comments yet
Contribute on Hacker News ↗