"void f1(std::optional"; "void f2(std::optional"; "void f4(std::optional x) const noexcept;"; "static void f5(std::optional x, std::optional y) noexcept;"; "void Foo_f6(struct CRustOptionCRustStrView x);"; "static void f6(std::optional x) noexcept;"; r#"template inline void FooWrapper::f6(std::optional x) noexcept { Foo_f6([](std::optional 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 a0) noexcept;"; r#"template inline void FooWrapper::f3(std::optional a0) noexcept { Foo_f3(this->self_, [](std::optional p) -> CRustOptionu32 { CRustOptionu32 out; if (p.has_value()) { out.val.data = static_cast((*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 inline void FooWrapper::f7(const Boo * x) noexcept { struct CRustClassOptBoo a0 = CRustClassOptBoo { (x != nullptr) ? static_cast(* x) : nullptr }; Foo_f7(std::move(a0)); }"#; "void Foo_f7(struct CRustClassOptBoo x);";