diff --git a/rust/flatbuffers/src/follow.rs b/rust/flatbuffers/src/follow.rs index d1d6483ae..c14fec32d 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 bc114e664..f597ef0b2 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 273212f2d..b45ad05ab 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 f0a709d58..639a7781a 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 a5ce2f72a..6e0047cd2 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 bc78fc1a1..cc76abca2 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 da7b9378b..7abd35a0e 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 0e6a78de1..7a2388a76 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 da7b9378b..7abd35a0e 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 0e6a78de1..7a2388a76 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 74ddfba0a..d868914f2 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 dd325b28f..3a13dbfec 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 81a9d60ba..6167a9fc2 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 98bc33171..cbd00edef 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 e97dfa0a8..b4e7ecdde 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 dfa8d56d4..4784d2a3f 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 34e0db12a..6dc7b0014 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 263fae76c..232a39b53 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 da7b9378b..7abd35a0e 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 0e6a78de1..7a2388a76 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 7aa3ec776..00efb3be7 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 9992293b6..c954cd47a 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 fbd7ce8d7..67b9aea09 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 8a7b6271a..01045f81f 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 f6f7bb7b1..4afad1c5f 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 9422b573b..1ece8edc5 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 71ceaa0be..090d1d965 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 e593299c0..8bff64799 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 c4bbd6925..f06e11f3e 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 27fa65ca2..90f5e7f47 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 76744f9f0..4721f54b1 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 c32fdc0c1..2c501b978 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 ab46d7e6a..7d5488f6c 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 a6ba7bfae..a867824fc 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 e201cc0b3..1eb30c5e3 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 7c5166b68..8e1fb63f1 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 e69661120..982a3d7b1 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;