Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 3 additions & 6 deletions pdl-compiler/src/backends/java/codegen/packet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -851,8 +851,7 @@ fn declare_array_count(
Some(WidthField::Size { elem_width: Some(elem_width), .. }) => {
let elem_bytes = *elem_width / 8;
let t = ExprTree::new();
let root =
t.div(t.symbol(quote!($(name)Size), Integral::Int), t.num(elem_bytes));
let root = t.div(t.symbol(quote!($(name)Size), Integral::Int), t.num(elem_bytes));
Some(quote!(
if ($(name)Size % $elem_bytes != 0) {
throw new IllegalArgumentException("Array size is not aligned to element size");
Expand All @@ -875,10 +874,8 @@ fn declare_array_count(
{
let elem_bytes = elem_width / 8;
let t = ExprTree::new();
let root = t.div(
t.symbol(quote!(buf.remaining()), Integral::Int),
t.num(elem_bytes),
);
let root =
t.div(t.symbol(quote!(buf.remaining()), Integral::Int), t.num(elem_bytes));
Some(quote!(
if (buf.remaining() % $elem_bytes != 0) {
throw new IllegalArgumentException("Array size is not aligned to element size");
Expand Down
6 changes: 5 additions & 1 deletion pdl-compiler/src/backends/java/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,11 @@ impl TestVector {
) -> impl FormatInto<Java> + 'a {
let packet_name = format!(
"{}{}",
if self.unpacked.as_ref().unwrap().as_object().unwrap().contains_key("payload") { "Unknown" } else { "" },
if self.unpacked.as_ref().unwrap().as_object().unwrap().contains_key("payload") {
"Unknown"
} else {
""
},
self.packet
.as_ref()
.map(|child_id| Class::name_from_id(child_id))
Expand Down
24 changes: 12 additions & 12 deletions pdl-compiler/src/backends/rust/decoder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ impl<'a> FieldParser<'a> {
let #id = (#cond_id == #cond_value)
.then(||
#type_id::try_from(#value).map_err(|unknown_val| {
DecodeError::InvalidEnumValueError {
DecodeError::EnumValueError {
obj: #decl_id,
field: #name,
value: unknown_val as u64,
Expand Down Expand Up @@ -207,7 +207,7 @@ impl<'a> FieldParser<'a> {
quote! {
let fixed_value = #v;
if fixed_value != #value_type::from(#enum_id::#tag_id) {
return Err(DecodeError::InvalidFixedValue {
return Err(DecodeError::FixedValueError {
expected: #value_type::from(#enum_id::#tag_id) as u64,
actual: fixed_value as u64,
});
Expand All @@ -219,7 +219,7 @@ impl<'a> FieldParser<'a> {
quote! {
let fixed_value = #v;
if fixed_value != #value {
return Err(DecodeError::InvalidFixedValue {
return Err(DecodeError::FixedValueError {
expected: #value,
actual: fixed_value as u64,
});
Expand All @@ -233,7 +233,7 @@ impl<'a> FieldParser<'a> {
let id = id.to_ident();
let type_id = type_id.to_ident();
quote! {
let #id = #type_id::try_from(#v).map_err(|unknown_val| DecodeError::InvalidEnumValueError {
let #id = #type_id::try_from(#v).map_err(|unknown_val| DecodeError::EnumValueError {
obj: #packet_name,
field: #field_name,
value: unknown_val as u64,
Expand Down Expand Up @@ -327,7 +327,7 @@ impl<'a> FieldParser<'a> {
let packet_name = &self.packet_name;
self.tokens.extend(quote! {
if #span.remaining() < #wanted {
return Err(DecodeError::InvalidLengthError {
return Err(DecodeError::LengthError {
obj: #packet_name,
wanted: #wanted,
got: #span.remaining(),
Expand Down Expand Up @@ -438,7 +438,7 @@ impl<'a> FieldParser<'a> {
}
let #id = #id
.try_into()
.map_err(|_| DecodeError::InvalidPacketError)?;
.map_err(|_| DecodeError::UnwrapError)?;
});
}
(ElementWidth::Unknown, ArrayShape::CountField(count_field)) => {
Expand Down Expand Up @@ -483,7 +483,7 @@ impl<'a> FieldParser<'a> {
}
let #id = #id
.try_into()
.map_err(|_| DecodeError::InvalidPacketError)?;
.map_err(|_| DecodeError::UnwrapError)?;
});
}
(ElementWidth::Static(element_width), ArrayShape::CountField(count_field)) => {
Expand Down Expand Up @@ -512,7 +512,7 @@ impl<'a> FieldParser<'a> {
let element_width = proc_macro2::Literal::usize_unsuffixed(element_width);
self.tokens.extend(quote! {
if #array_size % #element_width != 0 {
return Err(DecodeError::InvalidArraySize {
return Err(DecodeError::ArraySizeError {
array: #array_size,
element: #element_width,
});
Expand Down Expand Up @@ -565,7 +565,7 @@ impl<'a> FieldParser<'a> {
#span = &#span[#array_size..];
let #id = #id
.try_into()
.map_err(|_| DecodeError::InvalidPacketError)?;
.map_err(|_| DecodeError::UnwrapError)?;
});
}
(ElementWidth::Dynamic(element_size_field), ArrayShape::CountField(count_field)) => {
Expand Down Expand Up @@ -606,7 +606,7 @@ impl<'a> FieldParser<'a> {
};
self.tokens.extend(quote! {
if #array_size % #element_size_field != 0 {
return Err(DecodeError::InvalidArraySize {
return Err(DecodeError::ArraySizeError {
array: #array_size,
element: #element_size_field,
});
Expand Down Expand Up @@ -706,7 +706,7 @@ impl<'a> FieldParser<'a> {
// size.
self.tokens.extend(quote! {
if #size_field < #size_modifier {
return Err(DecodeError::InvalidLengthError {
return Err(DecodeError::LengthError {
obj: #packet_name,
wanted: #size_modifier,
got: #size_field,
Expand Down Expand Up @@ -772,7 +772,7 @@ impl<'a> FieldParser<'a> {
let type_id = id.to_ident();
let packet_name = &self.packet_name;
return quote! {
#type_id::try_from(#get_uint).map_err(|unknown_val| DecodeError::InvalidEnumValueError {
#type_id::try_from(#get_uint).map_err(|unknown_val| DecodeError::EnumValueError {
obj: #packet_name,
field: "", // TODO(mgeisler): fill out or remove
value: unknown_val as u64,
Expand Down
6 changes: 3 additions & 3 deletions pdl-compiler/src/backends/rust/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -713,7 +713,7 @@ fn generate_derived_packet_decl(
let value_str = constraint_value_str(&parent_data_fields, c);
quote! {
if parent.#field_id() != #value {
return Err(DecodeError::InvalidFieldValue {
return Err(DecodeError::ConstraintValueError {
packet: #packet_name,
field: #field_name,
expected: #value_str,
Expand All @@ -740,7 +740,7 @@ fn generate_derived_packet_decl(
#( #cloned_field_ids: parent.#cloned_field_ids.clone(), )*
})
} else {
Err(DecodeError::TrailingBytes)
Err(DecodeError::TrailingBytesError)
}
}
}
Expand Down Expand Up @@ -1240,7 +1240,7 @@ fn generate_custom_field_decl(
impl Packet for #id {
fn decode(mut buf: &[u8]) -> Result<(Self, &[u8]), DecodeError> {
if buf.len() < #size {
return Err(DecodeError::InvalidLengthError {
return Err(DecodeError::LengthError {
obj: #name,
wanted: #size,
got: buf.len(),
Expand Down
12 changes: 6 additions & 6 deletions pdl-compiler/src/backends/rust/test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,12 @@ fn to_json<T: Serialize>(value: &T) -> syn::LitStr {

/// Map an error variant name to a `matches!` pattern for `DecodeError`.
///
/// Unit variants like `"TrailingBytes"` become `DecodeError::TrailingBytes`.
/// Struct variants like `"InvalidLengthError"` become `DecodeError::InvalidLengthError { .. }`.
/// Unit variants like `"TrailingBytesError"` become `DecodeError::TrailingBytesError`.
/// Struct variants like `"LengthError"` become `DecodeError::LengthError { .. }`.
fn error_variant_pattern(variant: &str) -> proc_macro2::TokenStream {
let variant_ident = format_ident!("{}", variant);
match variant {
"InvalidPacketError" | "ImpossibleStructError" | "TrailingBytes" => {
"UnwrapError" | "TrailingBytesError" => {
quote! { DecodeError::#variant_ident }
}
_ => {
Expand Down Expand Up @@ -118,9 +118,9 @@ fn generate_unit_tests(input: &str, packet_names: &[&str]) -> Result<String, Str
&test_vector.packed
);

let object = unpacked.as_object().unwrap_or_else(|| {
panic!("Expected test vector object, found: {unpacked}")
});
let object = unpacked
.as_object()
.unwrap_or_else(|| panic!("Expected test vector object, found: {unpacked}"));
let assertions = object.iter().map(|(key, value)| {
let getter = format_ident!("{key}");
let expected = format_ident!("expected_{key}");
Expand Down
26 changes: 13 additions & 13 deletions pdl-compiler/tests/canonical/be_test_vectors.json
Original file line number Diff line number Diff line change
Expand Up @@ -4996,15 +4996,15 @@
"tests": [
{
"packed": "",
"expected_error": "InvalidLengthError"
"expected_error": "LengthError"
},
{
"packed": "000000",
"expected_error": "InvalidLengthError"
"expected_error": "LengthError"
},
{
"packed": "000000000000000000",
"expected_error": "TrailingBytes"
"expected_error": "TrailingBytesError"
}
]
},
Expand All @@ -5013,15 +5013,15 @@
"tests": [
{
"packed": "0000000000000000",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
},
{
"packed": "0000000000000005",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
},
{
"packed": "000000000000007e",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
}
]
},
Expand All @@ -5030,11 +5030,11 @@
"tests": [
{
"packed": "0000000000000000",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
},
{
"packed": "0000000000000006",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
}
]
},
Expand All @@ -5043,11 +5043,11 @@
"tests": [
{
"packed": "0000000000000002",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
},
{
"packed": "0000000000000004",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
}
]
},
Expand All @@ -5056,11 +5056,11 @@
"tests": [
{
"packed": "0102",
"expected_error": "InvalidLengthError"
"expected_error": "LengthError"
},
{
"packed": "0102030405",
"expected_error": "TrailingBytes"
"expected_error": "TrailingBytesError"
}
]
},
Expand All @@ -5069,7 +5069,7 @@
"tests": [
{
"packed": "03010203",
"expected_error": "InvalidArraySize"
"expected_error": "ArraySizeError"
}
]
}
Expand Down
30 changes: 15 additions & 15 deletions pdl-compiler/tests/canonical/le_test_vectors.json
Original file line number Diff line number Diff line change
Expand Up @@ -5381,15 +5381,15 @@
"tests": [
{
"packed": "",
"expected_error": "InvalidLengthError"
"expected_error": "LengthError"
},
{
"packed": "000000",
"expected_error": "InvalidLengthError"
"expected_error": "LengthError"
},
{
"packed": "000000000000000000",
"expected_error": "TrailingBytes"
"expected_error": "TrailingBytesError"
}
]
},
Expand All @@ -5398,15 +5398,15 @@
"tests": [
{
"packed": "0000000000000000",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
},
{
"packed": "0500000000000000",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
},
{
"packed": "7e00000000000000",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
}
]
},
Expand All @@ -5415,11 +5415,11 @@
"tests": [
{
"packed": "0000000000000000",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
},
{
"packed": "0600000000000000",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
}
]
},
Expand All @@ -5428,11 +5428,11 @@
"tests": [
{
"packed": "0200000000000000",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
},
{
"packed": "0400000000000000",
"expected_error": "InvalidFixedValue"
"expected_error": "FixedValueError"
}
]
},
Expand All @@ -5441,11 +5441,11 @@
"tests": [
{
"packed": "0102",
"expected_error": "InvalidLengthError"
"expected_error": "LengthError"
},
{
"packed": "0102030405",
"expected_error": "TrailingBytes"
"expected_error": "TrailingBytesError"
}
]
},
Expand All @@ -5454,7 +5454,7 @@
"tests": [
{
"packed": "03010203",
"expected_error": "InvalidArraySize"
"expected_error": "ArraySizeError"
}
]
},
Expand All @@ -5463,11 +5463,11 @@
"tests": [
{
"packed": "02",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
},
{
"packed": "07",
"expected_error": "InvalidEnumValueError"
"expected_error": "EnumValueError"
}
]
}
Expand Down
Loading
Loading