flapigen 0.11.0

Tool for connecting libraries written in Rust with other languages
Documentation
r#"static C_Foo reference_to_c_interface(Foo &cpp_interface) noexcept
    {
        C_Foo ret;
        ret.opaque = &cpp_interface;
        ret.const_method = c_const_method;
        ret.mut_method = c_mut_method;

        ret.C_Foo_deref = [](void *) {};
        return ret;
    }"#;

"static void call_const_method(const Foo& x) noexcept;";
"static void call_mut_method(Foo& x) noexcept;";

r#"template<bool OWN_DATA>
    inline void TestFooRefWrapper<OWN_DATA>::call_const_method(const Foo& x) noexcept
    {

        C_Foo tmp = Foo::reference_to_c_interface(x);
        const struct C_Foo * const a0 = &tmp;

        TestFooRef_call_const_method(std::move(a0));
    }"#;

r#"template<bool OWN_DATA>
    inline void TestFooRefWrapper<OWN_DATA>::call_mut_method(Foo& x) noexcept
    {

        C_Foo tmp = Foo::reference_to_c_interface(x);
        struct C_Foo * const a0 = &tmp;

        TestFooRef_call_mut_method(std::move(a0));
    }"#;


"void TestFooRef_call_const_method(const struct C_Foo * const x);";
"void TestFooRef_call_mut_method(struct C_Foo * const x);";