Move include information of builtins to builtin.rs
diff --git a/gen/src/builtin.rs b/gen/src/builtin.rs
index 36e32f8..ab2b465 100644
--- a/gen/src/builtin.rs
+++ b/gen/src/builtin.rs
@@ -41,6 +41,38 @@
let builtin = &mut out.builtin;
let out = &mut builtin.content;
+ if builtin.rust_string {
+ include.array = true;
+ include.cstdint = true;
+ include.string = true;
+ }
+
+ if builtin.rust_str {
+ include.cstdint = true;
+ include.string = true;
+ }
+
+ if builtin.rust_box {
+ include.new = true;
+ include.type_traits = true;
+ }
+
+ if builtin.rust_vec {
+ include.array = true;
+ include.new = true;
+ include.type_traits = true;
+ builtin.panic = true;
+ builtin.unsafe_bitcopy = true;
+ }
+
+ if builtin.rust_error {
+ include.exception = true;
+ }
+
+ if builtin.rust_isize {
+ include.basetsd = true;
+ }
+
out.begin_block(Block::Namespace("rust"));
out.begin_block(Block::InlineNamespace("cxxbridge05"));
writeln!(out, "// #include \"rust/cxx.h\"");
diff --git a/gen/src/write.rs b/gen/src/write.rs
index 8688797..2c3234c 100644
--- a/gen/src/write.rs
+++ b/gen/src/write.rs
@@ -144,45 +144,18 @@
Some(U8) | Some(U16) | Some(U32) | Some(U64) | Some(I8) | Some(I16) | Some(I32)
| Some(I64) => out.include.cstdint = true,
Some(Usize) => out.include.cstddef = true,
- Some(Isize) => {
- out.include.basetsd = true;
- out.builtin.rust_isize = true;
- }
+ Some(Isize) => out.builtin.rust_isize = true,
Some(CxxString) => out.include.string = true,
- Some(RustString) => {
- out.include.array = true;
- out.include.cstdint = true;
- out.include.string = true;
- out.builtin.rust_string = true;
- }
+ Some(RustString) => out.builtin.rust_string = true,
Some(Bool) | Some(F32) | Some(F64) | None => {}
},
- Type::RustBox(_) => {
- out.include.new = true;
- out.include.type_traits = true;
- out.builtin.rust_box = true;
- }
- Type::RustVec(_) => {
- out.include.array = true;
- out.include.new = true;
- out.include.type_traits = true;
- out.builtin.panic = true;
- out.builtin.rust_vec = true;
- out.builtin.unsafe_bitcopy = true;
- }
+ Type::RustBox(_) => out.builtin.rust_box = true,
+ Type::RustVec(_) => out.builtin.rust_vec = true,
Type::UniquePtr(_) => out.include.memory = true,
- Type::Str(_) => {
- out.include.cstdint = true;
- out.include.string = true;
- out.builtin.rust_str = true;
- }
+ Type::Str(_) => out.builtin.rust_str = true,
Type::CxxVector(_) => out.include.vector = true,
- Type::Fn(_) => {
- out.builtin.rust_fn = true;
- }
- Type::Slice(_) => {
- out.builtin.rust_slice = true;
- }
+ Type::Fn(_) => out.builtin.rust_fn = true,
+ Type::Slice(_) => out.builtin.rust_slice = true,
Type::SliceRefU8(_) => {
out.include.cstdint = true;
out.builtin.rust_slice = true;
@@ -750,7 +723,6 @@
}
writeln!(out, ";");
if sig.throws {
- out.include.exception = true;
out.builtin.rust_error = true;
writeln!(out, " if (error$.ptr) {{");
writeln!(out, " throw ::rust::impl<::rust::Error>::error(error$);");