From 457b2796e6fc268074b87d36c9f9a2c25eb4b5af Mon Sep 17 00:00:00 2001 From: Teddy Wing Date: Sat, 22 Sep 2018 01:40:35 +0200 Subject: Add a `State` struct The plan is to use this as an opaque pointer to be passed between the Objective-C code and Rust code. It will contain the current mode (if in a mode) and the parsed `MapGroup` definitions. For now just some code inspired by the Rust FFI Omnibus (http://jakegoulding.com/rust-ffi-omnibus/objects/) to create and free a `State`. --- dome_key_map.h | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'dome_key_map.h') diff --git a/dome_key_map.h b/dome_key_map.h index 7bd77ca..633e9b3 100644 --- a/dome_key_map.h +++ b/dome_key_map.h @@ -23,6 +23,8 @@ typedef enum { MapKind_Command, } MapKind; +typedef struct State State; + typedef struct { const HeadphoneButton *buttons; size_t length; @@ -35,3 +37,7 @@ typedef struct { } CKeyActionResult; const CKeyActionResult *c_run_key_action(Trigger trigger, const Trigger *mode); + +void state_free(State *ptr); + +State *state_new(void); -- cgit v1.2.3