17 lines
318 B
C
17 lines
318 B
C
#pragma once
|
|
|
|
typedef struct state State;
|
|
typedef struct state_machine StateMachine;
|
|
typedef State *(StateFunc)(StateMachine *sm, void *event_data);
|
|
typedef void NoEventData;
|
|
|
|
struct state {
|
|
StateFunc *state_func;
|
|
};
|
|
|
|
struct state_machine {
|
|
State *current_state;
|
|
};
|
|
|
|
void sm_run(StateMachine *sm, void *event_data);
|