patterns: Fixed ZigZag encoding in protobuf pattern

This commit is contained in:
WerWolv
2022-08-28 19:07:30 +02:00
committed by GitHub
parent b0d8b81861
commit 9fec10000a

View File

@@ -7,7 +7,7 @@ struct ZigZag32 {
} [[sealed, format("format_zigzag32")]];
fn format_zigzag32(ZigZag32 zigzag) {
return s32((zigzag.value << 1) ^ (zigzag.value >> 31));
return s32((s32(zigzag.value) << 1) ^ (s32(zigzag.value) >> 31));
};
struct ZigZag64 {
@@ -15,7 +15,7 @@ struct ZigZag64 {
} [[sealed, format("format_zigzag64")]];
fn format_zigzag64(ZigZag64 zigzag) {
return s64((zigzag.value << 1) ^ (zigzag.value >> 63));
return s64((s64(zigzag.value) << 1) ^ (s64(zigzag.value) >> 63));
};
enum WireType : u8 {
@@ -63,4 +63,4 @@ struct Entry {
_32Bit value;
};
Entry entries[while(!std::mem::eof())] @ 0x00;
Entry entries[while(!std::mem::eof())] @ 0x00;