Wasm: Clarify some more magic numbers

This commit is contained in:
Brian Carroll 2022-01-15 15:17:24 +00:00
parent 9290d3ad5c
commit 94ea50f56a

View file

@ -458,15 +458,21 @@ pub enum Limits {
MinMax(u32, u32), MinMax(u32, u32),
} }
#[repr(u8)]
enum LimitsId {
Min = 0,
MinMax = 1,
}
impl Serialize for Limits { impl Serialize for Limits {
fn serialize<T: SerialBuffer>(&self, buffer: &mut T) { fn serialize<T: SerialBuffer>(&self, buffer: &mut T) {
match self { match self {
Self::Min(min) => { Self::Min(min) => {
buffer.append_u8(0); buffer.append_u8(LimitsId::Min as u8);
buffer.encode_u32(*min); buffer.encode_u32(*min);
} }
Self::MinMax(min, max) => { Self::MinMax(min, max) => {
buffer.append_u8(1); buffer.append_u8(LimitsId::MinMax as u8);
buffer.encode_u32(*min); buffer.encode_u32(*min);
buffer.encode_u32(*max); buffer.encode_u32(*max);
} }
@ -476,7 +482,7 @@ impl Serialize for Limits {
impl SkipBytes for Limits { impl SkipBytes for Limits {
fn skip_bytes(bytes: &[u8], cursor: &mut usize) { fn skip_bytes(bytes: &[u8], cursor: &mut usize) {
if bytes[*cursor] == 0 { if bytes[*cursor] == LimitsId::Min as u8 {
u8::skip_bytes(bytes, cursor); u8::skip_bytes(bytes, cursor);
u32::skip_bytes(bytes, cursor); u32::skip_bytes(bytes, cursor);
} else { } else {
@ -831,11 +837,11 @@ impl Serialize for DataSegment<'_> {
fn serialize<T: SerialBuffer>(&self, buffer: &mut T) { fn serialize<T: SerialBuffer>(&self, buffer: &mut T) {
match &self.mode { match &self.mode {
DataMode::Active { offset } => { DataMode::Active { offset } => {
buffer.append_u8(0); buffer.append_u8(0); // variant ID
offset.serialize(buffer); offset.serialize(buffer);
} }
DataMode::Passive => { DataMode::Passive => {
buffer.append_u8(1); buffer.append_u8(1); // variant ID
} }
} }