From 75a56d5f262e714eea189533533c73e13e35ed9f Mon Sep 17 00:00:00 2001 From: Michael Ward Date: Fri, 13 Dec 2024 09:44:13 -0600 Subject: [PATCH] [Rust] Updated code generator to resolve Issue #1028 (#1037) * [Rust] updated LibRsDef.generate() to add "#![allow(clippy::all)]" * [Rust] generating 'From for PRIMITIVE' instead of 'Into for ENUM' to satisfy 'from_over_into' lint * [Rust] removed unused method parameter * fixed formatting * [Rust] Updated code generator to resolve Issue #1022 * [Rust] meant issue #1028 not 1022 (renamed files accordingly) --------- Co-authored-by: Michael Ward --- build.gradle | 3 +- rust/Cargo.toml | 1 + .../sbe/generation/rust/RustGenerator.java | 2 +- sbe-tool/src/test/resources/issue1028.xml | 30 +++++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 sbe-tool/src/test/resources/issue1028.xml diff --git a/build.gradle b/build.gradle index 9641c9972f..6a20ee7201 100644 --- a/build.gradle +++ b/build.gradle @@ -653,6 +653,7 @@ tasks.register('generateRustTestCodecs', JavaExec) { 'sbe-tool/src/test/resources/issue972.xml', 'sbe-tool/src/test/resources/issue984.xml', 'sbe-tool/src/test/resources/issue987.xml', + 'sbe-tool/src/test/resources/issue1028.xml', 'sbe-tool/src/test/resources/example-bigendian-test-schema.xml', 'sbe-tool/src/test/resources/nested-composite-name.xml', ] @@ -866,7 +867,7 @@ tasks.register('generateGolangCodecs') { 'generateGolangFlyweightCodecTestComposite', 'generateGolangFlyweightCodecsWithXIncludes', 'generateGolangFlyweightCodecsWithXSD', - 'generateIrCodecs', + 'generateIrCodecs', ':sbe-all:jar' } diff --git a/rust/Cargo.toml b/rust/Cargo.toml index 6b265a3020..f15d4d2f6d 100644 --- a/rust/Cargo.toml +++ b/rust/Cargo.toml @@ -16,6 +16,7 @@ issue_895 = { path = "../generated/rust/issue895" } issue_972 = { path = "../generated/rust/issue972" } issue_984 = { path = "../generated/rust/issue984" } issue_987 = { path = "../generated/rust/issue987" } +issue_1028 = { path = "../generated/rust/issue1028" } baseline_bigendian = { path = "../generated/rust/baseline-bigendian" } nested_composite_name = { path = "../generated/rust/nested-composite-name" } diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/RustGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/RustGenerator.java index 0c03766553..f78899cb4b 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/RustGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/RustGenerator.java @@ -1580,7 +1580,7 @@ private static void generateCompositeDecoder( indent(out, 2, "offset: usize,\n"); indent(out, 1, "}\n\n"); - final int version = tokens.stream().findFirst().get().version(); + final int version = tokens.get(1).version(); // skip BEGIN_COMPOSITE appendImplReaderForComposite(schemaVersionType, version, out, 1, decoderName); // impl<'a, P> start diff --git a/sbe-tool/src/test/resources/issue1028.xml b/sbe-tool/src/test/resources/issue1028.xml new file mode 100644 index 0000000000..2a88c59c1b --- /dev/null +++ b/sbe-tool/src/test/resources/issue1028.xml @@ -0,0 +1,30 @@ + + + + 0 + + + + + + + + + + + + + + + + \ No newline at end of file