flapigen 0.11.0

Tool for connecting libraries written in Rust with other languages
Documentation
// Important !
// This new type needs to be named as 'CSomeEnumOpaque',
// else this conflicts with C++ bindings code (type 'SomeEnum' is already defined there).
r#"// Automatically generated by flapigen
#pragma once

//Multi-line comment
//for `enum SomeEnum`.

enum SomeEnum {
//`Val1` has a one-line comment.
    SomeEnum_Val1 = 0,

    SomeEnum_Val2 = 1,

//`Val3` has a one-line comment.
//`Val2` had no comment at all.
    SomeEnum_Val3 = 2
};

typedef enum SomeEnum CSomeEnum;
"#;

// Second enum syntax:
r#"// Automatically generated by flapigen
#pragma once



enum OtherEnum {
    OtherEnum_Val4 = 0,

    OtherEnum_Val5 = 1
};

typedef enum OtherEnum COtherEnum;
"#;

// Example of class using SomeEnum.
r#"// Automatically generated by flapigen

#pragma once

//for (u)intX_t types
#include <stdint.h>

#ifdef __cplusplus
static_assert(sizeof(uintptr_t) == sizeof(uint8_t) * 8,
   "our conversion usize <-> uintptr_t is wrong");
extern "C" {
#endif

    uint32_t Boo_return_is_enum();

    void Boo_param_is_enum(uint32_t e);

    uint32_t Boo_param_and_return_are_enum(uint32_t e);

#ifdef __cplusplus
}
#endif
"#;