diff options
| author | Teddy Wing | 2018-08-25 22:52:41 +0200 |
|---|---|---|
| committer | Teddy Wing | 2018-08-25 22:52:41 +0200 |
| commit | 4fd3fd4ded73aa4ba5320de50cd6b19fdf70a8a7 (patch) | |
| tree | 10b9e17c4c1f8a113fce7e71c845aadbefc3fc0e /dome_key_map.h | |
| parent | cdac4ed1ce81b76e6684f778fd07c8ebdacce556 (diff) | |
| download | dome-key-map-4fd3fd4ded73aa4ba5320de50cd6b19fdf70a8a7.tar.bz2 | |
Generate a partial C header for our FFI API
* Add the 'cbindgen' crate to help us auto-generate a C header for our
exported FFI enums/structs/functions
* Add a `build.rs` to generate the C header using cbindgen
* Add a rough config for 'cbindgen'
* Export everything from the `cocoa_bridge` crate to include the
`KeyActionResult` struct
* Commit the C header generated by 'cbindgen'
Looks promising. We do, however, have some things to correct. We can't
use `Option` in C, for instance, so we'll need to fix that in our
`KeyActionResult`. Similarly, we need to rework the `run_key_action()`
function to make it accessible as a C interface. Right now it returns an
`Option`, which isn't going to work, and I'm not sure if the slice input
translates. That (any maybe more) is why it doesn't get generated by
'cbindgen' into the header output file.
Diffstat (limited to 'dome_key_map.h')
| -rw-r--r-- | dome_key_map.h | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/dome_key_map.h b/dome_key_map.h new file mode 100644 index 0000000..473d2f0 --- /dev/null +++ b/dome_key_map.h @@ -0,0 +1,22 @@ +/* Test */ + +/* Generated with cbindgen:0.6.2 */ + +#include <stdint.h> +#include <stdlib.h> +#include <stdbool.h> + +typedef enum { + Play, + Up, + Down, +} HeadphoneButton; + +typedef struct MapKind MapKind; + +typedef struct Option_CString Option_CString; + +typedef struct { + Option_CString action; + MapKind kind; +} KeyActionResult; |
