Preserve meaning of block boundaries
diff --git a/gen/src/builtin.rs b/gen/src/builtin.rs
index 448b6f8..e755e10 100644
--- a/gen/src/builtin.rs
+++ b/gen/src/builtin.rs
@@ -1,3 +1,4 @@
+use crate::gen::block::Block;
use crate::gen::ifndef;
use crate::gen::out::{Content, OutFile};
@@ -39,8 +40,8 @@
let builtin = &mut out.builtin;
let out = &mut builtin.content;
- out.begin_block("namespace rust");
- out.begin_block("inline namespace cxxbridge05");
+ out.begin_block(Block::Namespace("rust"));
+ out.begin_block(Block::InlineNamespace("cxxbridge05"));
writeln!(out, "// #include \"rust/cxx.h\"");
ifndef::write(out, builtin.panic, "CXXBRIDGE05_PANIC");
@@ -51,10 +52,10 @@
}
if builtin.rust_error {
- out.begin_block("namespace");
+ out.begin_block(Block::AnonymousNamespace);
writeln!(out, "template <typename T>");
writeln!(out, "class impl;");
- out.end_block("namespace");
+ out.end_block(Block::AnonymousNamespace);
}
ifndef::write(out, builtin.rust_string, "CXXBRIDGE05_RUST_STRING");
@@ -91,15 +92,15 @@
writeln!(out, "}};");
}
- out.begin_block("namespace");
+ out.begin_block(Block::AnonymousNamespace);
if builtin.ptr_len {
- out.begin_block("namespace repr");
+ out.begin_block(Block::Namespace("repr"));
writeln!(out, "struct PtrLen final {{");
writeln!(out, " const void *ptr;");
writeln!(out, " size_t len;");
writeln!(out, "}};");
- out.end_block("namespace repr");
+ out.end_block(Block::Namespace("repr"));
}
if builtin.rust_str_new_unchecked || builtin.rust_str_repr {
@@ -167,11 +168,11 @@
writeln!(out, "}};");
}
- out.end_block("namespace");
- out.end_block("namespace cxxbridge05");
+ out.end_block(Block::AnonymousNamespace);
+ out.end_block(Block::InlineNamespace("cxxbridge05"));
if builtin.trycatch {
- out.begin_block("namespace behavior");
+ out.begin_block(Block::Namespace("behavior"));
include.exception = true;
include.type_traits = true;
include.utility = true;
@@ -190,8 +191,8 @@
writeln!(out, "}} catch (const ::std::exception &e) {{");
writeln!(out, " fail(e.what());");
writeln!(out, "}}");
- out.end_block("namespace behavior");
+ out.end_block(Block::Namespace("behavior"));
}
- out.end_block("namespace rust");
+ out.end_block(Block::Namespace("rust"));
}