diff --git a/rust/tests/baseline_test.rs b/rust/tests/baseline_test.rs index c223c83989..bff75170c4 100644 --- a/rust/tests/baseline_test.rs +++ b/rust/tests/baseline_test.rs @@ -176,8 +176,8 @@ fn encode_car_from_scratch() -> SbeResult<(usize, Vec)> { car.model_year(2013); car.available(BooleanType::T); car.code(Model::A); - car.some_numbers([1, 2, 3, 4]); - car.vehicle_code([97, 98, 99, 100, 101, 102]); // abcdef + car.some_numbers(&[1, 2, 3, 4]); + car.vehicle_code(&[97, 98, 99, 100, 101, 102]); // abcdef extras.set_cruise_control(true); extras.set_sports_pack(true); @@ -187,7 +187,7 @@ fn encode_car_from_scratch() -> SbeResult<(usize, Vec)> { let mut engine = car.engine_encoder(); engine.capacity(2000); engine.num_cylinders(4); - engine.manufacturer_code([49, 50, 51]); // 123 + engine.manufacturer_code(&[49, 50, 51]); // 123 engine.efficiency(35); engine.booster_enabled(BooleanType::T); let mut booster = engine.booster_encoder(); diff --git a/rust/tests/big_endian_test.rs b/rust/tests/big_endian_test.rs index a1e107bc8d..a5a749c94a 100644 --- a/rust/tests/big_endian_test.rs +++ b/rust/tests/big_endian_test.rs @@ -170,8 +170,8 @@ fn encode_car_from_scratch() -> SbeResult<(usize, Vec)> { car.model_year(2013); car.available(BooleanType::T); car.code(Model::A); - car.some_numbers([0, 1, 2, 3, 4]); - car.vehicle_code(*b"abcdef"); + car.some_numbers(&[0, 1, 2, 3, 4]); + car.vehicle_code(b"abcdef"); extras.set_cruise_control(true); extras.set_sports_pack(true); @@ -181,7 +181,7 @@ fn encode_car_from_scratch() -> SbeResult<(usize, Vec)> { let mut engine = car.engine_encoder(); engine.capacity(2000); engine.num_cylinders(4); - engine.manufacturer_code(*b"123"); + engine.manufacturer_code(b"123"); engine.efficiency(35); engine.booster_enabled(BooleanType::T); let mut booster = engine.booster_encoder(); diff --git a/rust/tests/extension_test.rs b/rust/tests/extension_test.rs index ad813c056f..07c81e9fb7 100644 --- a/rust/tests/extension_test.rs +++ b/rust/tests/extension_test.rs @@ -177,8 +177,8 @@ fn encode_car_from_scratch() -> SbeResult<(usize, Vec)> { car.model_year(2013); car.available(BooleanType::T); car.code(Model::A); - car.some_numbers([0, 1, 2, 3]); - car.vehicle_code([97, 98, 99, 100, 101, 102]); // abcdef + car.some_numbers(&[0, 1, 2, 3]); + car.vehicle_code(&[97, 98, 99, 100, 101, 102]); // abcdef extras.set_cruise_control(true); extras.set_sports_pack(true); @@ -188,7 +188,7 @@ fn encode_car_from_scratch() -> SbeResult<(usize, Vec)> { let mut engine = car.engine_encoder(); engine.capacity(2000); engine.num_cylinders(4); - engine.manufacturer_code([49, 50, 51]); // 123 + engine.manufacturer_code(&[49, 50, 51]); // 123 engine.efficiency(35); engine.booster_enabled(BooleanType::T); let mut booster = engine.booster_encoder(); diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/LibRsDef.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/LibRsDef.java index 7d0b79a0aa..a51b2746da 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/LibRsDef.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/LibRsDef.java @@ -56,7 +56,7 @@ void generate() throws IOException { indent(libRs, 0, "#![forbid(unsafe_code)]\n"); indent(libRs, 0, "#![allow(clippy::upper_case_acronyms)]\n"); - indent(libRs, 0, "#![allow(non_camel_case_types)]\n"); + indent(libRs, 0, "#![allow(non_camel_case_types)]\n\n"); indent(libRs, 0, "use ::core::{convert::TryInto};\n\n"); final ArrayList modules = new ArrayList<>(); @@ -225,8 +225,8 @@ static void generateWriteBuf(final Writer writer, final ByteOrder byteOrder) thr indent(writer, 1, "#[inline]\n"); indent(writer, 1, - "pub fn put_bytes_at(&mut self, index: usize, bytes: [u8; COUNT]) -> usize {\n"); - indent(writer, 2, "self.data[index..index + COUNT].copy_from_slice(&bytes);\n"); + "pub fn put_bytes_at(&mut self, index: usize, bytes: &[u8; COUNT]) -> usize {\n"); + indent(writer, 2, "self.data[index..index + COUNT].copy_from_slice(bytes);\n"); indent(writer, 2, "COUNT\n"); indent(writer, 1, "}\n\n"); @@ -245,7 +245,7 @@ static void generateWriteBuf(final Writer writer, final ByteOrder byteOrder) thr // put__at indent(writer, 1, "#[inline]\n"); indent(writer, 1, "pub fn put_%1$s_at(&mut self, index: usize, value: %1$s) {\n", primitiveType); - indent(writer, 2, "self.put_bytes_at(index, %s::to_%s_bytes(value));\n", primitiveType, endianness); + indent(writer, 2, "self.put_bytes_at(index, &%s::to_%s_bytes(value));\n", primitiveType, endianness); indent(writer, 1, "}\n\n"); } 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 d30bd318f6..d0067d836c 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 @@ -379,7 +379,7 @@ private static void generatePrimitiveEncoder( indent(sb, level, "/// - encodedLength: %d\n", typeToken.encodedLength()); indent(sb, level, "/// - version: %d\n", typeToken.version()); indent(sb, level, "#[inline]\n"); - indent(sb, level, "pub fn %s(&mut self, value: [%s; %d]) {\n", + indent(sb, level, "pub fn %s(&mut self, value: &[%s; %d]) {\n", formatFunctionName(name), rustPrimitiveType, arrayLength);