From 736d6591a1ab893766eaed0b6181c5113cb7d960 Mon Sep 17 00:00:00 2001 From: Stephane Raux Date: Wed, 18 Sep 2024 21:25:39 -0500 Subject: [PATCH] Forward-declare non-flat uniffi enums Resolves #46 Signed-off-by: Stephane Raux --- bindgen/src/bindings/cpp/templates/wrapper.hpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/bindgen/src/bindings/cpp/templates/wrapper.hpp b/bindgen/src/bindings/cpp/templates/wrapper.hpp index e430f3f..331fe68 100644 --- a/bindgen/src/bindings/cpp/templates/wrapper.hpp +++ b/bindgen/src/bindings/cpp/templates/wrapper.hpp @@ -30,14 +30,12 @@ namespace {{ namespace }} { {%- match typ %} {%- when Type::Enum { module_path, name } %} {%- let e = ci|get_enum_definition(name) %} -{%- if ci.is_name_used_as_error(name) %} +{%- if ci.is_name_used_as_error(name) || !e.is_flat() %} struct {{ name }}; {%- else %} -{%- if e.is_flat() %} enum class {{ name }}; {%- endif %} -{%- endif %} -{%- when Type::Record { module_path, name } %} +{%- when Type::Record { module_path, name } %} struct {{ name }}; {%- when Type::Object { module_path, name, imp } %} struct {{ name }};