// Automatically generated by the Flatbuffers compiler. Do not modify.
// @generated
pub mod my_game {
    use super::*;
    pub mod example {
        use super::*;
        mod test_enum_generated;
        pub use self::test_enum_generated::*;
        mod nested_struct_generated;
        pub use self::nested_struct_generated::*;
        mod array_struct_generated;
        pub use self::array_struct_generated::*;
        mod large_array_struct_generated;
        pub use self::large_array_struct_generated::*;
        mod array_table_generated;
        pub use self::array_table_generated::*;
    } // example
} // my_game
