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 f361397916..1de9357f3a 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 @@ -189,7 +189,7 @@ static void generateReadBuf(final Appendable writer, final ByteOrder byteOrder) indent(writer, 0, "#[allow(dead_code)]\n"); indent(writer, 0, "impl<%s> %s<%s> {\n", BUF_LIFETIME, READ_BUF_TYPE, BUF_LIFETIME); indent(writer, 1, "#[inline]\n"); - indent(writer, 1, "pub fn new(data: &%s [u8]) -> Self {\n", BUF_LIFETIME); + indent(writer, 1, "pub const fn new(data: &%s [u8]) -> Self {\n", BUF_LIFETIME); indent(writer, 2, "Self { data }\n"); indent(writer, 1, "}\n\n"); @@ -205,7 +205,7 @@ static void generateReadBuf(final Appendable writer, final ByteOrder byteOrder) uniquePrimitiveTypes.remove("u8"); indent(writer, 0, "\n"); indent(writer, 1, "#[inline]\n"); - indent(writer, 1, "pub fn get_u8_at(&self, index: usize) -> u8 {\n"); + indent(writer, 1, "pub const fn get_u8_at(&self, index: usize) -> u8 {\n"); indent(writer, 2, "self.data[index]\n"); indent(writer, 1, "}\n"); @@ -238,7 +238,7 @@ static void generateWriteBuf(final Writer writer, final ByteOrder byteOrder) thr indent(writer, 0, "}\n"); indent(writer, 0, "impl<%s> %s<%s> {\n", BUF_LIFETIME, WRITE_BUF_TYPE, BUF_LIFETIME); - indent(writer, 1, "pub fn new(data: &%s mut [u8]) -> Self {\n", BUF_LIFETIME); + indent(writer, 1, "pub const fn new(data: &%s mut [u8]) -> Self {\n", BUF_LIFETIME); indent(writer, 2, "Self { data }\n"); indent(writer, 1, "}\n\n"); @@ -255,7 +255,7 @@ static void generateWriteBuf(final Writer writer, final ByteOrder byteOrder) thr uniquePrimitiveTypes.remove("u8"); indent(writer, 1, "#[inline]\n"); - indent(writer, 1, "pub fn put_u8_at(&mut self, index: usize, value: u8) {\n"); + indent(writer, 1, "pub const fn put_u8_at(&mut self, index: usize, value: u8) {\n"); indent(writer, 2, "self.data[index] = value;\n"); indent(writer, 1, "}\n\n"); diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/MessageCoderDef.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/MessageCoderDef.java index e4e19f4c52..1979de7b86 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/MessageCoderDef.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/MessageCoderDef.java @@ -83,7 +83,7 @@ void generate( appendWrapFn(sb); indent(sb, 2, "#[inline]\n"); - indent(sb, 2, "pub fn encoded_length(&self) -> usize {\n"); + indent(sb, 2, "pub const fn encoded_length(&self) -> usize {\n"); indent(sb, 3, "self.limit - self.offset\n"); indent(sb, 2, "}\n\n"); diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/SubGroup.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/SubGroup.java index 5c1981a874..e96c11c20a 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/SubGroup.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/rust/SubGroup.java @@ -103,7 +103,7 @@ void generateEncoder( // block_length function indent(sb, level, "#[inline]\n"); - indent(sb, level, "pub fn block_length() -> %s {\n", rustTypeName(blockLengthPrimitiveType)); + indent(sb, level, "pub const fn block_length() -> %s {\n", rustTypeName(blockLengthPrimitiveType)); indent(sb, level + 1, "%d\n", this.groupToken.encodedLength()); indent(sb, level, "}\n\n");