flapigen 0.11.0

Tool for connecting libraries written in Rust with other languages
Documentation
"void f1(std::optional<double>";
"void f2(std::optional<Boo>";
"void f4(std::optional<uintptr_t> x) const noexcept;";
"static void f5(std::optional<double> x, std::optional<uintptr_t> y) noexcept;";

"void Foo_f6(struct CRustOptionCRustStrView x);";
"static void f6(std::optional<std::string_view> x) noexcept;";
r#"template<bool OWN_DATA>
    inline void FooWrapper<OWN_DATA>::f6(std::optional<std::string_view> x) noexcept
    {

        Foo_f6([](std::optional<std::string_view> p) -> CRustOptionCRustStrView {
            CRustOptionCRustStrView out;
            if (p.has_value()) {
                out.val.data = CRustStrView{ (*p).data(), (*p).size() };
                out.is_some = 1;
            } else {
                out.is_some = 0;
            }
            return out;
            }(std::move(x)));
    }"#;

"void f3(std::optional<ControlItem> a0) noexcept;";
r#"template<bool OWN_DATA>
    inline void FooWrapper<OWN_DATA>::f3(std::optional<ControlItem> a0) noexcept
    {

        Foo_f3(this->self_, [](std::optional<ControlItem> p) -> CRustOptionu32 {
            CRustOptionu32 out;
            if (p.has_value()) {
                out.val.data = static_cast<uint32_t>((*p));
                out.is_some = 1;
            } else {
                out.is_some = 0;
            }
            return out;
            }(std::move(a0)));
    }"#;
"void Foo_f3(FooOpaque * const self, struct CRustOptionu32 a0);";

"static void f7(const Boo * x) noexcept;";
r#"template<bool OWN_DATA>
    inline void FooWrapper<OWN_DATA>::f7(const Boo * x) noexcept
    {

        struct CRustClassOptBoo a0 = CRustClassOptBoo { (x != nullptr) ? static_cast<BooOpaque *>(* x) : nullptr };

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

"void Foo_f7(struct CRustClassOptBoo x);";