From d554d79fecf5afd6da6fb993b30b4cd523a5889a Mon Sep 17 00:00:00 2001 From: Max Burke Date: Wed, 27 Nov 2019 16:15:32 -0800 Subject: [PATCH] [Rust] Add crate-relative use statements for FBS includes. At present if a flatbuffer description includes a reference to a type in another file, the generated Rust code needs to be hand-modified to add the appropriate `use` statements. This assumes that the dependencies are built into the same crate, which I think is a reasonable assumption? --- src/idl_gen_rust.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index a3180260a..5041005a0 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -1752,6 +1752,14 @@ class RustGenerator : public BaseGenerator { void GenNamespaceImports(const int white_spaces) { std::string indent = std::string(white_spaces, ' '); code_ += ""; + for (auto it = parser_.included_files_.begin(); + it != parser_.included_files_.end(); ++it) { + if (it->second.empty()) continue; + auto noext = flatbuffers::StripExtension(it->second); + auto basename = flatbuffers::StripPath(noext); + + code_ += indent + "use crate::" + basename + "_generated::*;"; + } code_ += indent + "use std::mem;"; code_ += indent + "use std::cmp::Ordering;"; code_ += "";