Fixes Rust code generation for single file output when using namespaces (#8877)

* Adds tests for Rust single file mode

All existing tests only compile Rust code using --rust-module-root-file.

* Adds standalone include tests for Rust

The imports for these tests have been moved to their own file, as the existing intergration_test.rs file hides compilation issues from code generation due to symbols brought into scope outside of the generated code (e.g. `extern crate alloc`).

* Declare alloc crate in every Rust namespace

When performing code generation within a single file, extern crate alloc needs to be delcared to bring alloc into scope within every inner namespace.

* Regenerates generated schemas
This commit is contained in:
Cameron Mulhern
2026-02-04 15:28:18 +00:00
committed by GitHub
parent ea0a73d168
commit 5b9de8b6c0
9 changed files with 994 additions and 26 deletions

View File

@@ -424,7 +424,6 @@ class RustGenerator : public BaseGenerator {
code_.Clear();
code_ += "// " + std::string(FlatBuffersGeneratedWarning());
code_ += "// @generated";
code_ += "extern crate alloc;";
assert(!cur_name_space_);
@@ -3006,6 +3005,7 @@ class RustGenerator : public BaseGenerator {
"use self::serde::ser::{Serialize, Serializer, SerializeStruct};";
code_ += "";
}
code_ += "extern crate alloc;";
}
// Set up the correct namespace. This opens a namespace if the current