// 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 #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 "#;