// Automatically generated by the Flatbuffers compiler. Do not modify.
// @generated
pub mod my_game {
  use super::*;
  pub mod other_name_space {
    use super::*;
    mod from_include_generated;
    pub use self::from_include_generated::*;
    mod unused_generated;
    pub use self::unused_generated::*;
    mod table_b_generated;
    pub use self::table_b_generated::*;
  } // other_name_space
} // my_game
mod table_a_generated;
pub use self::table_a_generated::*;
