diff --git a/rust/flatbuffers/src/follow.rs b/rust/flatbuffers/src/follow.rs index d1d6483ae67..c14fec32dc0 100644 --- a/rust/flatbuffers/src/follow.rs +++ b/rust/flatbuffers/src/follow.rs @@ -53,3 +53,7 @@ impl<'a, T: Follow<'a>> Follow<'a> for FollowStart { T::follow(buf, loc) } } + +pub trait FollowWith<'a> { + type Inner: Follow<'a>; +} diff --git a/rust/flatbuffers/src/lib.rs b/rust/flatbuffers/src/lib.rs index bc114e664c2..f597ef0b235 100644 --- a/rust/flatbuffers/src/lib.rs +++ b/rust/flatbuffers/src/lib.rs @@ -51,7 +51,7 @@ pub use crate::builder::FlatBufferBuilder; pub use crate::endian_scalar::{ byte_swap_f32, byte_swap_f64, emplace_scalar, read_scalar, read_scalar_at, EndianScalar, }; -pub use crate::follow::{Follow, FollowStart}; +pub use crate::follow::{Follow, FollowStart, FollowWith}; pub use crate::primitives::*; pub use crate::push::Push; pub use crate::table::{buffer_has_identifier, Table}; diff --git a/samples/rust_generated/my_game/sample/monster_generated.rs b/samples/rust_generated/my_game/sample/monster_generated.rs index 273212f2d5d..b45ad05aba3 100644 --- a/samples/rust_generated/my_game/sample/monster_generated.rs +++ b/samples/rust_generated/my_game/sample/monster_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for Monster<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Monster<'b> { + type Inner = Monster<'a>; +} + impl<'a> Monster<'a> { pub const VT_POS: flatbuffers::VOffsetT = 4; pub const VT_MANA: flatbuffers::VOffsetT = 6; diff --git a/samples/rust_generated/my_game/sample/weapon_generated.rs b/samples/rust_generated/my_game/sample/weapon_generated.rs index f0a709d5812..639a7781a61 100644 --- a/samples/rust_generated/my_game/sample/weapon_generated.rs +++ b/samples/rust_generated/my_game/sample/weapon_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for Weapon<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Weapon<'b> { + type Inner = Weapon<'a>; +} + impl<'a> Weapon<'a> { pub const VT_NAME: flatbuffers::VOffsetT = 4; pub const VT_DAMAGE: flatbuffers::VOffsetT = 6; diff --git a/src/idl_gen_rust.cpp b/src/idl_gen_rust.cpp index a5ce2f72a05..6e0047cd208 100644 --- a/src/idl_gen_rust.cpp +++ b/src/idl_gen_rust.cpp @@ -1655,6 +1655,10 @@ class RustGenerator : public BaseGenerator { code_ += " }"; code_ += "}"; code_ += ""; + code_ += "impl<'a, 'b> flatbuffers::FollowWith<'a> for {{STRUCT_TY}}<'b> {"; + code_ += " type Inner = {{STRUCT_TY}}<'a>;"; + code_ += "}"; + code_ += ""; code_ += "impl<'a> {{STRUCT_TY}}<'a> {"; // Generate field id constants. diff --git a/tests/arrays_test/my_game/example/array_table_generated.rs b/tests/arrays_test/my_game/example/array_table_generated.rs index bc78fc1a17d..cc76abca251 100644 --- a/tests/arrays_test/my_game/example/array_table_generated.rs +++ b/tests/arrays_test/my_game/example/array_table_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for ArrayTable<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for ArrayTable<'b> { + type Inner = ArrayTable<'a>; +} + impl<'a> ArrayTable<'a> { pub const VT_A: flatbuffers::VOffsetT = 4; diff --git a/tests/include_test1/my_game/other_name_space/table_b_generated.rs b/tests/include_test1/my_game/other_name_space/table_b_generated.rs index da7b9378b01..7abd35a0ee9 100644 --- a/tests/include_test1/my_game/other_name_space/table_b_generated.rs +++ b/tests/include_test1/my_game/other_name_space/table_b_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableB<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableB<'b> { + type Inner = TableB<'a>; +} + impl<'a> TableB<'a> { pub const VT_A: flatbuffers::VOffsetT = 4; diff --git a/tests/include_test1/table_a_generated.rs b/tests/include_test1/table_a_generated.rs index 0e6a78de14e..7a2388a76ef 100644 --- a/tests/include_test1/table_a_generated.rs +++ b/tests/include_test1/table_a_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableA<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableA<'b> { + type Inner = TableA<'a>; +} + impl<'a> TableA<'a> { pub const VT_B: flatbuffers::VOffsetT = 4; diff --git a/tests/include_test2/my_game/other_name_space/table_b_generated.rs b/tests/include_test2/my_game/other_name_space/table_b_generated.rs index da7b9378b01..7abd35a0ee9 100644 --- a/tests/include_test2/my_game/other_name_space/table_b_generated.rs +++ b/tests/include_test2/my_game/other_name_space/table_b_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableB<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableB<'b> { + type Inner = TableB<'a>; +} + impl<'a> TableB<'a> { pub const VT_A: flatbuffers::VOffsetT = 4; diff --git a/tests/include_test2/table_a_generated.rs b/tests/include_test2/table_a_generated.rs index 0e6a78de14e..7a2388a76ef 100644 --- a/tests/include_test2/table_a_generated.rs +++ b/tests/include_test2/table_a_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableA<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableA<'b> { + type Inner = TableA<'a>; +} + impl<'a> TableA<'a> { pub const VT_B: flatbuffers::VOffsetT = 4; diff --git a/tests/keyword_test/keyword_test/keywords_in_table_generated.rs b/tests/keyword_test/keyword_test/keywords_in_table_generated.rs index 74ddfba0af1..d868914f202 100644 --- a/tests/keyword_test/keyword_test/keywords_in_table_generated.rs +++ b/tests/keyword_test/keyword_test/keywords_in_table_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for KeywordsInTable<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for KeywordsInTable<'b> { + type Inner = KeywordsInTable<'a>; +} + impl<'a> KeywordsInTable<'a> { pub const VT_IS: flatbuffers::VOffsetT = 4; pub const VT_PRIVATE: flatbuffers::VOffsetT = 6; diff --git a/tests/monster_test/my_game/example/monster_generated.rs b/tests/monster_test/my_game/example/monster_generated.rs index dd325b28f3d..3a13dbfec83 100644 --- a/tests/monster_test/my_game/example/monster_generated.rs +++ b/tests/monster_test/my_game/example/monster_generated.rs @@ -25,6 +25,10 @@ impl<'a> flatbuffers::Follow<'a> for Monster<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Monster<'b> { + type Inner = Monster<'a>; +} + impl<'a> Monster<'a> { pub const VT_POS: flatbuffers::VOffsetT = 4; pub const VT_MANA: flatbuffers::VOffsetT = 6; diff --git a/tests/monster_test/my_game/example/referrable_generated.rs b/tests/monster_test/my_game/example/referrable_generated.rs index 81a9d60bad4..6167a9fc2f2 100644 --- a/tests/monster_test/my_game/example/referrable_generated.rs +++ b/tests/monster_test/my_game/example/referrable_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for Referrable<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Referrable<'b> { + type Inner = Referrable<'a>; +} + impl<'a> Referrable<'a> { pub const VT_ID: flatbuffers::VOffsetT = 4; diff --git a/tests/monster_test/my_game/example/stat_generated.rs b/tests/monster_test/my_game/example/stat_generated.rs index 98bc331718b..cbd00edef86 100644 --- a/tests/monster_test/my_game/example/stat_generated.rs +++ b/tests/monster_test/my_game/example/stat_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for Stat<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Stat<'b> { + type Inner = Stat<'a>; +} + impl<'a> Stat<'a> { pub const VT_ID: flatbuffers::VOffsetT = 4; pub const VT_VAL: flatbuffers::VOffsetT = 6; diff --git a/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs b/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs index e97dfa0a809..b4e7ecdde8e 100644 --- a/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs +++ b/tests/monster_test/my_game/example/test_simple_table_with_enum_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TestSimpleTableWithEnum<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TestSimpleTableWithEnum<'b> { + type Inner = TestSimpleTableWithEnum<'a>; +} + impl<'a> TestSimpleTableWithEnum<'a> { pub const VT_COLOR: flatbuffers::VOffsetT = 4; diff --git a/tests/monster_test/my_game/example/type_aliases_generated.rs b/tests/monster_test/my_game/example/type_aliases_generated.rs index dfa8d56d449..4784d2a3f88 100644 --- a/tests/monster_test/my_game/example/type_aliases_generated.rs +++ b/tests/monster_test/my_game/example/type_aliases_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TypeAliases<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TypeAliases<'b> { + type Inner = TypeAliases<'a>; +} + impl<'a> TypeAliases<'a> { pub const VT_I8_: flatbuffers::VOffsetT = 4; pub const VT_U8_: flatbuffers::VOffsetT = 6; diff --git a/tests/monster_test/my_game/example_2/monster_generated.rs b/tests/monster_test/my_game/example_2/monster_generated.rs index 34e0db12a13..6dc7b0014c9 100644 --- a/tests/monster_test/my_game/example_2/monster_generated.rs +++ b/tests/monster_test/my_game/example_2/monster_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for Monster<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Monster<'b> { + type Inner = Monster<'a>; +} + impl<'a> Monster<'a> { pub const fn get_fully_qualified_name() -> &'static str { diff --git a/tests/monster_test/my_game/in_parent_namespace_generated.rs b/tests/monster_test/my_game/in_parent_namespace_generated.rs index 263fae76cda..232a39b53ff 100644 --- a/tests/monster_test/my_game/in_parent_namespace_generated.rs +++ b/tests/monster_test/my_game/in_parent_namespace_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for InParentNamespace<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for InParentNamespace<'b> { + type Inner = InParentNamespace<'a>; +} + impl<'a> InParentNamespace<'a> { pub const fn get_fully_qualified_name() -> &'static str { diff --git a/tests/monster_test/my_game/other_name_space/table_b_generated.rs b/tests/monster_test/my_game/other_name_space/table_b_generated.rs index da7b9378b01..7abd35a0ee9 100644 --- a/tests/monster_test/my_game/other_name_space/table_b_generated.rs +++ b/tests/monster_test/my_game/other_name_space/table_b_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableB<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableB<'b> { + type Inner = TableB<'a>; +} + impl<'a> TableB<'a> { pub const VT_A: flatbuffers::VOffsetT = 4; diff --git a/tests/monster_test/table_a_generated.rs b/tests/monster_test/table_a_generated.rs index 0e6a78de14e..7a2388a76ef 100644 --- a/tests/monster_test/table_a_generated.rs +++ b/tests/monster_test/table_a_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableA<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableA<'b> { + type Inner = TableA<'a>; +} + impl<'a> TableA<'a> { pub const VT_B: flatbuffers::VOffsetT = 4; diff --git a/tests/monster_test_serialize/my_game/example/monster_generated.rs b/tests/monster_test_serialize/my_game/example/monster_generated.rs index 7aa3ec77605..00efb3be7e7 100644 --- a/tests/monster_test_serialize/my_game/example/monster_generated.rs +++ b/tests/monster_test_serialize/my_game/example/monster_generated.rs @@ -27,6 +27,10 @@ impl<'a> flatbuffers::Follow<'a> for Monster<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Monster<'b> { + type Inner = Monster<'a>; +} + impl<'a> Monster<'a> { pub const VT_POS: flatbuffers::VOffsetT = 4; pub const VT_MANA: flatbuffers::VOffsetT = 6; diff --git a/tests/monster_test_serialize/my_game/example/referrable_generated.rs b/tests/monster_test_serialize/my_game/example/referrable_generated.rs index 9992293b6fc..c954cd47a38 100644 --- a/tests/monster_test_serialize/my_game/example/referrable_generated.rs +++ b/tests/monster_test_serialize/my_game/example/referrable_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for Referrable<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Referrable<'b> { + type Inner = Referrable<'a>; +} + impl<'a> Referrable<'a> { pub const VT_ID: flatbuffers::VOffsetT = 4; diff --git a/tests/monster_test_serialize/my_game/example/stat_generated.rs b/tests/monster_test_serialize/my_game/example/stat_generated.rs index fbd7ce8d797..67b9aea09f8 100644 --- a/tests/monster_test_serialize/my_game/example/stat_generated.rs +++ b/tests/monster_test_serialize/my_game/example/stat_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for Stat<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Stat<'b> { + type Inner = Stat<'a>; +} + impl<'a> Stat<'a> { pub const VT_ID: flatbuffers::VOffsetT = 4; pub const VT_VAL: flatbuffers::VOffsetT = 6; diff --git a/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs b/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs index 8a7b6271a9e..01045f81f79 100644 --- a/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs +++ b/tests/monster_test_serialize/my_game/example/test_simple_table_with_enum_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for TestSimpleTableWithEnum<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TestSimpleTableWithEnum<'b> { + type Inner = TestSimpleTableWithEnum<'a>; +} + impl<'a> TestSimpleTableWithEnum<'a> { pub const VT_COLOR: flatbuffers::VOffsetT = 4; diff --git a/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs b/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs index f6f7bb7b16f..4afad1c5ffb 100644 --- a/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs +++ b/tests/monster_test_serialize/my_game/example/type_aliases_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for TypeAliases<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TypeAliases<'b> { + type Inner = TypeAliases<'a>; +} + impl<'a> TypeAliases<'a> { pub const VT_I8_: flatbuffers::VOffsetT = 4; pub const VT_U8_: flatbuffers::VOffsetT = 6; diff --git a/tests/monster_test_serialize/my_game/example_2/monster_generated.rs b/tests/monster_test_serialize/my_game/example_2/monster_generated.rs index 9422b573bf6..1ece8edc5d7 100644 --- a/tests/monster_test_serialize/my_game/example_2/monster_generated.rs +++ b/tests/monster_test_serialize/my_game/example_2/monster_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for Monster<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Monster<'b> { + type Inner = Monster<'a>; +} + impl<'a> Monster<'a> { pub const fn get_fully_qualified_name() -> &'static str { diff --git a/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs b/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs index 71ceaa0be6d..090d1d965ab 100644 --- a/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs +++ b/tests/monster_test_serialize/my_game/in_parent_namespace_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for InParentNamespace<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for InParentNamespace<'b> { + type Inner = InParentNamespace<'a>; +} + impl<'a> InParentNamespace<'a> { pub const fn get_fully_qualified_name() -> &'static str { diff --git a/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs b/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs index e593299c08d..8bff6479902 100644 --- a/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs +++ b/tests/monster_test_serialize/my_game/other_name_space/table_b_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for TableB<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableB<'b> { + type Inner = TableB<'a>; +} + impl<'a> TableB<'a> { pub const VT_A: flatbuffers::VOffsetT = 4; diff --git a/tests/monster_test_serialize/table_a_generated.rs b/tests/monster_test_serialize/table_a_generated.rs index c4bbd6925c5..f06e11f3efc 100644 --- a/tests/monster_test_serialize/table_a_generated.rs +++ b/tests/monster_test_serialize/table_a_generated.rs @@ -26,6 +26,10 @@ impl<'a> flatbuffers::Follow<'a> for TableA<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableA<'b> { + type Inner = TableA<'a>; +} + impl<'a> TableA<'a> { pub const VT_B: flatbuffers::VOffsetT = 4; diff --git a/tests/more_defaults/more_defaults_generated.rs b/tests/more_defaults/more_defaults_generated.rs index 27fa65ca286..90f5e7f4727 100644 --- a/tests/more_defaults/more_defaults_generated.rs +++ b/tests/more_defaults/more_defaults_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for MoreDefaults<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for MoreDefaults<'b> { + type Inner = MoreDefaults<'a>; +} + impl<'a> MoreDefaults<'a> { pub const VT_INTS: flatbuffers::VOffsetT = 4; pub const VT_FLOATS: flatbuffers::VOffsetT = 6; diff --git a/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs b/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs index 76744f9f0e6..4721f54b147 100644 --- a/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs +++ b/tests/namespace_test/namespace_a/namespace_b/table_in_nested_ns_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableInNestedNS<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableInNestedNS<'b> { + type Inner = TableInNestedNS<'a>; +} + impl<'a> TableInNestedNS<'a> { pub const VT_FOO: flatbuffers::VOffsetT = 4; diff --git a/tests/namespace_test/namespace_a/second_table_in_a_generated.rs b/tests/namespace_test/namespace_a/second_table_in_a_generated.rs index c32fdc0c1fd..2c501b97814 100644 --- a/tests/namespace_test/namespace_a/second_table_in_a_generated.rs +++ b/tests/namespace_test/namespace_a/second_table_in_a_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for SecondTableInA<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for SecondTableInA<'b> { + type Inner = SecondTableInA<'a>; +} + impl<'a> SecondTableInA<'a> { pub const VT_REFER_TO_C: flatbuffers::VOffsetT = 4; diff --git a/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs b/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs index ab46d7e6ad6..7d5488f6c31 100644 --- a/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs +++ b/tests/namespace_test/namespace_a/table_in_first_ns_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableInFirstNS<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableInFirstNS<'b> { + type Inner = TableInFirstNS<'a>; +} + impl<'a> TableInFirstNS<'a> { pub const VT_FOO_TABLE: flatbuffers::VOffsetT = 4; pub const VT_FOO_ENUM: flatbuffers::VOffsetT = 6; diff --git a/tests/namespace_test/namespace_c/table_in_c_generated.rs b/tests/namespace_test/namespace_c/table_in_c_generated.rs index a6ba7bfae68..a867824fc1f 100644 --- a/tests/namespace_test/namespace_c/table_in_c_generated.rs +++ b/tests/namespace_test/namespace_c/table_in_c_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for TableInC<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for TableInC<'b> { + type Inner = TableInC<'a>; +} + impl<'a> TableInC<'a> { pub const VT_REFER_TO_A1: flatbuffers::VOffsetT = 4; pub const VT_REFER_TO_A2: flatbuffers::VOffsetT = 6; diff --git a/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs b/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs index e201cc0b3c3..1eb30c5e3b8 100644 --- a/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs +++ b/tests/optional_scalars/optional_scalars/scalar_stuff_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for ScalarStuff<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for ScalarStuff<'b> { + type Inner = ScalarStuff<'a>; +} + impl<'a> ScalarStuff<'a> { pub const VT_JUST_I8: flatbuffers::VOffsetT = 4; pub const VT_MAYBE_I8: flatbuffers::VOffsetT = 6; diff --git a/tests/private_annotation_test/annotations_generated.rs b/tests/private_annotation_test/annotations_generated.rs index 7c5166b681d..8e1fb63f19b 100644 --- a/tests/private_annotation_test/annotations_generated.rs +++ b/tests/private_annotation_test/annotations_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for Annotations<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Annotations<'b> { + type Inner = Annotations<'a>; +} + impl<'a> Annotations<'a> { pub const VT_VALUE: flatbuffers::VOffsetT = 4; diff --git a/tests/private_annotation_test/game_generated.rs b/tests/private_annotation_test/game_generated.rs index e69661120c3..982a3d7b12e 100644 --- a/tests/private_annotation_test/game_generated.rs +++ b/tests/private_annotation_test/game_generated.rs @@ -24,6 +24,10 @@ impl<'a> flatbuffers::Follow<'a> for Game<'a> { } } +impl<'a, 'b> flatbuffers::FollowWith<'a> for Game<'b> { + type Inner = Game<'a>; +} + impl<'a> Game<'a> { pub const VT_VALUE: flatbuffers::VOffsetT = 4;