Generates CPython CFFI bindings for Interoptopus.

Usage

In your library or a support project add this:

```rust use mycrate::ffiinventory;

[test]

fn generatepythonbindings() { use interoptopus::Interop; use interoptopusbackendcpython_cffi::{Generator, PythonWriter, Config};

// Converts an `ffi_inventory()` into Python interop definitions.
Generator::new(Config::default(), ffi_inventory()).write_to("module.py")

} ```

And we might produce something like this:

```python from cffi import FFI

api_definition = """ typedef struct Vec3f32 { float x; float y; float z; } Vec2f32;

Vec3f32 mygamefunction(Vec3f32* input); """

ffi = FFI() ffi.cdef(api_definition) _api = None

def init_api(dll): """Initializes this library, call with path to DLL.""" global _api _api = ffi.dlopen(dll)

class raw: """Raw access to all exported functions."""

def my_game_function(input):
global _api
return _api.my_game_function(input)

```