flapigen 0.11.0

Tool for connecting libraries written in Rust with other languages
Documentation
"typedef struct FooOpaque FooOpaque;";

"void TestPassObjectsAsParams_f1(const TestPassObjectsAsParamsOpaque * const self, const FooOpaque * a0);";
"void TestPassObjectsAsParams_f2(const TestPassObjectsAsParamsOpaque * const self, FooOpaque * a0);";
"void TestPassObjectsAsParams_f3(const TestPassObjectsAsParamsOpaque * const self, FooOpaque * a0);";
"void TestPassObjectsAsParams_f3_a(const TestPassObjectsAsParamsOpaque * const self, BooOpaque * a0);";
"void TestPassObjectsAsParams_f4(const FooOpaque * a0);";
"void TestPassObjectsAsParams_f5(FooOpaque * a0);";

"void f1(const Foo & a0) const noexcept";
"void f2(Foo a0) const noexcept";
"void f3(Foo & a0) const noexcept";
"void f3_a(Boo & a0) const noexcept";
"static void f4(const Foo & a0) noexcept";
"static void f5(Foo a0) noexcept";

r#"inline void TestPassObjectsAsParamsWrapper<OWN_DATA>::f1(const Foo & a0) const noexcept
    {

        TestPassObjectsAsParams_f1(this->self_, static_cast<const FooOpaque *>(a0));
    }"#;
    
r#"inline void TestPassObjectsAsParamsWrapper<OWN_DATA>::f2(Foo a0) const noexcept
    {

        TestPassObjectsAsParams_f2(this->self_, a0.release());
    }"#;
    
    r#"inline void TestPassObjectsAsParamsWrapper<OWN_DATA>::f3(Foo & a0) const noexcept
    {

        TestPassObjectsAsParams_f3(this->self_, static_cast<FooOpaque *>(a0));
    }"#;

r#"template<bool OWN_DATA>
    inline void TestPassObjectsAsParamsWrapper<OWN_DATA>::f3_a(Boo & a0) const noexcept
    {

        TestPassObjectsAsParams_f3_a(this->self_, static_cast<BooOpaque *>(a0));
    }"#;

r#"template<bool OWN_DATA>
    inline void TestPassObjectsAsParamsWrapper<OWN_DATA>::f4(const Foo & a0) noexcept
    {

        TestPassObjectsAsParams_f4(static_cast<const FooOpaque *>(a0));
    }"#;

r#"template<bool OWN_DATA>
    inline void TestPassObjectsAsParamsWrapper<OWN_DATA>::f5(Foo a0) noexcept
    {

        TestPassObjectsAsParams_f5(a0.release());
    }"#;