Skip to content

Conversation

@csmulhern
Copy link
Contributor

The Rust code generator produced code with a plethora of warnings. These have been addressed.

  1. Statements such as use core::mem were included at the top of the file, so that the shorthand mem could be used to reference the std::mem module in the generated code. However, not all schemas / configurations would generate code referencing core::mem. This would trigger warnings about unused use statements. These use statements have all been removed, in favor of using the fully qualified name (::core::mem::...) in all generated code.

An exhaustive list of migrated use statements is included below:

alloc::boxed::Box
alloc::string::String
alloc::vec::Vec
core::mem
core::cmp::Ordering
  1. Similarly, use statements were used to bring traits into scope so that the trait methods could be called on types implementing that trait. For example, EndianScalar::to_little_endian. These usages have been converted to UFCS. E.g. x.to_little_endian() -> ::flatbuffers::EndianScalar::to_little_endian(x).

An exhaustive list is of migrated traits is included below:

alloc::string::ToString
flatbuffers::EndianScalar
flatbuffers::Follow
  1. References to externally defined types (e.g. flatbuffers::Vec) have been converted to use absolute paths (e.g. ::flatbuffers::Vec). Using absolute paths provides the most flexibility in terms of how the generated code is used (e.g. include!-ing the generated code in a file that defines a module named flatbuffers would not cause ambiguity around if flatbuffers::Vec references the module or the flatbuffers crate.

Unfortunately, we cannot remove #allow(unused_imports) entirely yet, due to remaining reliance on generated code for multiple files using use super::*, though all other improper imports are fixed.

@github-actions github-actions bot added c++ rust codegen Involving generating code from schema labels Dec 4, 2025
@csmulhern
Copy link
Contributor Author

I removed #allow(unused_imports) within rust_usage_test. Here is the build output diff from this change. Note that hundreds of unused import warnings are removed.

Details
diff --git a/a.txt b/b.txt
index cff4d93..cc22a96 100644
--- a/a.txt
+++ b/b.txt
@@ -6,167 +6,23 @@ warning: unused import: `super::*`
   |
   = note: `#[warn(unused_imports)]` on by default
 
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:5:5
+warning: unused import: `super::*`
+ --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:5:5
+ --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:62:9
-   |
-62 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:6:21
+ --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:4:5
   |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `super::*`
-  --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test1/my_game/other_name_space/table_b_generated.rs:71:9
-   |
-71 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test1/table_a_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test1/table_a_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test1/table_a_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test1/table_a_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../include_test1/table_a_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test1/table_a_generated.rs:71:9
-   |
-71 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
  --> bin/../../include_test2/mod.rs:6:9
@@ -174,785 +30,71 @@ warning: unused import: `super::*`
 6 |     use super::*;
   |         ^^^^^^^^
 
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:5:5
+warning: unused import: `super::*`
+ --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:5:5
+ --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:62:9
-   |
-62 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:6:21
+ --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:4:5
   |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test2/my_game/other_name_space/table_b_generated.rs:71:9
-   |
-71 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../include_test2/table_a_generated.rs:6:21
+ --> bin/../../monster_test/my_game/example/color_generated.rs:4:5
   |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../include_test2/table_a_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../include_test2/table_a_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../include_test2/table_a_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../include_test2/table_a_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test2/table_a_generated.rs:71:9
-   |
-71 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/color_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/color_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/color_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/color_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/color_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/color_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/color_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/race_generated.rs:5:5
+ --> bin/../../monster_test/my_game/example/race_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/race_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/race_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/race_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/race_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/race_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/race_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/long_enum_generated.rs:5:5
+ --> bin/../../monster_test/my_game/example/long_enum_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/long_enum_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/long_enum_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/long_enum_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/long_enum_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/long_enum_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/long_enum_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/any_generated.rs:6:21
+ --> bin/../../monster_test/my_game/example/test_generated.rs:4:5
   |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/any_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/any_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/any_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/any_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/any_unique_aliases_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/any_unique_aliases_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/any_unique_aliases_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/any_unique_aliases_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/any_unique_aliases_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/any_ambiguous_aliases_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/any_ambiguous_aliases_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/any_ambiguous_aliases_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/any_ambiguous_aliases_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/any_ambiguous_aliases_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/test_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/test_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/test_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/test_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/test_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/test_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/test_generated.rs:63:9
-   |
-63 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/test_simple_table_with_enum_generated.rs:5:5
+ --> bin/../../monster_test/my_game/example/ability_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/test_simple_table_with_enum_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/test_simple_table_with_enum_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/test_simple_table_with_enum_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/test_simple_table_with_enum_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/test_simple_table_with_enum_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/test_simple_table_with_enum_generated.rs:69:9
-   |
-69 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/vec_3_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/vec_3_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/vec_3_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/vec_3_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/vec_3_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/vec_3_generated.rs:67:9
-   |
-67 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/ability_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/ability_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/ability_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/ability_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/ability_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/ability_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/ability_generated.rs:63:9
-   |
-63 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:5:5
+ --> bin/../../monster_test/my_game/example/stat_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `EndianScalar`
-  --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:64:9
-   |
-64 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `EndianScalar`
-  --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:62:9
-   |
-62 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/stat_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/stat_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/stat_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/stat_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/stat_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/stat_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-   --> bin/../../monster_test/my_game/example/stat_generated.rs:103:9
-    |
-103 |     use self::flatbuffers::Verifiable;
-    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/referrable_generated.rs:5:5
+ --> bin/../../monster_test/my_game/example/referrable_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/referrable_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example/referrable_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/referrable_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/referrable_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/referrable_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/referrable_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/referrable_generated.rs:79:9
-   |
-79 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/monster_generated.rs:8:5
+ --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:4:5
   |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/monster_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `EndianScalar`
-  --> bin/../../monster_test/my_game/example/monster_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-   --> bin/../../monster_test/my_game/example/monster_generated.rs:996:9
-    |
-996 |     use self::flatbuffers::Verifiable;
-    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-   --> bin/../../monster_test/my_game/example/type_aliases_generated.rs:194:9
-    |
-194 |     use self::flatbuffers::Verifiable;
-    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
   --> bin/../../monster_test/mod.rs:41:9
@@ -960,53 +102,11 @@ warning: unused import: `super::*`
 41 |     use super::*;
    |         ^^^^^^^^
 
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/example_2/monster_generated.rs:5:5
-  |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/example_2/monster_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/example_2/monster_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/example_2/monster_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/example_2/monster_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/example_2/monster_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/example_2/monster_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example_2/monster_generated.rs:57:9
-   |
-57 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ --> bin/../../monster_test/my_game/example_2/monster_generated.rs:4:5
+  |
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
   --> bin/../../monster_test/mod.rs:46:9
@@ -1014,324 +114,30 @@ warning: unused import: `super::*`
 46 |     use super::*;
    |         ^^^^^^^^
 
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:5:5
+warning: unused import: `super::*`
+ --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:5:5
+ --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:62:9
-   |
-62 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:6:21
+ --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:4:5
   |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
 warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/other_name_space/table_b_generated.rs:71:9
-   |
-71 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `alloc::boxed::Box`
- --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:5:5
+ --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:4:5
   |
-5 | use alloc::boxed::Box;
-  |     ^^^^^^^^^^^^^^^^^
+4 | use super::*;
+  |     ^^^^^^^^
 
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `super::*`
-  --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:11:5
-   |
-11 | use super::*;
-   |     ^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/in_parent_namespace_generated.rs:57:9
-   |
-57 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `String` and `ToString`
- --> bin/../../monster_test/table_a_generated.rs:6:21
-  |
-6 | use alloc::string::{String, ToString};
-  |                     ^^^^^^  ^^^^^^^^
-
-warning: unused import: `alloc::vec::Vec`
- --> bin/../../monster_test/table_a_generated.rs:7:5
-  |
-7 | use alloc::vec::Vec;
-  |     ^^^^^^^^^^^^^^^
-
-warning: unused import: `core::mem`
- --> bin/../../monster_test/table_a_generated.rs:8:5
-  |
-8 | use core::mem;
-  |     ^^^^^^^^^
-
-warning: unused import: `core::cmp::Ordering`
- --> bin/../../monster_test/table_a_generated.rs:9:5
-  |
-9 | use core::cmp::Ordering;
-  |     ^^^^^^^^^^^^^^^^^^^
-
-warning: unused imports: `EndianScalar` and `Follow`
-  --> bin/../../monster_test/table_a_generated.rs:10:25
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                         ^^^^^^^^^^^^  ^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/table_a_generated.rs:71:9
-   |
-71 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test1/my_game/other_name_space/from_include_generated.rs:87:9
-   |
-87 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../include_test1/my_game/other_name_space/unused_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../include_test2/my_game/other_name_space/from_include_generated.rs:87:9
-   |
-87 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../include_test2/my_game/other_name_space/unused_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../monster_test/my_game/example/monster_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/color_generated.rs:65:9
-   |
-65 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/race_generated.rs:99:9
-   |
-99 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/long_enum_generated.rs:61:9
-   |
-61 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/any_generated.rs:99:9
-   |
-99 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/any_unique_aliases_generated.rs:99:9
-   |
-99 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/example/any_ambiguous_aliases_generated.rs:99:9
-   |
-99 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../monster_test/my_game/example/test_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../monster_test/my_game/other_name_space/unused_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../monster_test/my_game/example/vec_3_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `self::flatbuffers::Verifiable`
-  --> bin/../../monster_test/my_game/other_name_space/from_include_generated.rs:87:9
-   |
-87 |     use self::flatbuffers::Verifiable;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../monster_test/my_game/example/ability_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../monster_test/my_game/example/struct_of_structs_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: unused import: `Follow`
-  --> bin/../../monster_test/my_game/example/struct_of_structs_of_structs_generated.rs:10:39
-   |
-10 | use self::flatbuffers::{EndianScalar, Follow};
-   |                                       ^^^^^^
-
-warning: `rust_usage_test` (bin "monster_example") generated 222 warnings (run `cargo fix --bin "monster_example"` to apply 204 suggestions)
-warning: `rust_usage_test` (bin "flatbuffers_alloc_check") generated 222 warnings (222 duplicates)
-    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.02s
+warning: `rust_usage_test` (bin "monster_example") generated 23 warnings (run `cargo fix --bin "monster_example"` to apply 23 suggestions)
+warning: `rust_usage_test` (bin "flatbuffers_alloc_check") generated 23 warnings (23 duplicates)
+    Finished `dev` profile [unoptimized + debuginfo] target(s) in 0.01s

@csmulhern
Copy link
Contributor Author

@aardappel I hope this is pretty reviewable now. Note that if you view just the first commit, there is relatively little code to review. The second commit is simply regenerating the generated Rust code using ./scripts/generate_code.py, which you can verify yourself.

The PR message hopefully contains all the relevant details, but this is basically equivalent to the following C++ change:

using std::unique_ptr;

unique_ptr<int> some_function() { ... }

->

::std::unique_ptr<int> some_function() { ... }
  1. We remove the using statements as not all generated code ends up using all types in the using prologue. Instead, we use the fully qualified path everywhere.
  2. We prefer referencing types relative to the global namespace for maximal hygiene.

Copy link
Collaborator

@aardappel aardappel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for making this easy to review, much appreciated.

@aardappel aardappel merged commit cfce38e into google:master Dec 5, 2025
50 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ codegen Involving generating code from schema rust

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants