Loading tools/pdl/src/backends/rust/parser.rs +1 −1 Original line number Diff line number Diff line Loading @@ -625,7 +625,7 @@ impl<'a> FieldParser<'a> { let packet_data_child = format_ident!("{}DataChild", self.packet_name); self.code.push(quote! { let child = match (#(#constrained_field_idents),*) { #(#match_values => { #(#match_values if #child_ids_data::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = #child_ids_data::parse_inner(&mut cell #child_parse_args)?; // TODO(mgeisler): communicate back to user if !cell.get().is_empty()? Loading tools/pdl/tests/generated/packet_decl_child_packets_big_endian.rs +2 −2 Original line number Diff line number Diff line Loading @@ -172,12 +172,12 @@ impl FooData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (a, b) { (100, _) => { (100, _) if BarData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BarData::parse_inner(&mut cell)?; FooDataChild::Bar(Arc::new(child_data)) } (_, Enum16::B) => { (_, Enum16::B) if BazData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BazData::parse_inner(&mut cell)?; FooDataChild::Baz(Arc::new(child_data)) Loading tools/pdl/tests/generated/packet_decl_child_packets_little_endian.rs +2 −2 Original line number Diff line number Diff line Loading @@ -172,12 +172,12 @@ impl FooData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (a, b) { (100, _) => { (100, _) if BarData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BarData::parse_inner(&mut cell)?; FooDataChild::Bar(Arc::new(child_data)) } (_, Enum16::B) => { (_, Enum16::B) if BazData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BazData::parse_inner(&mut cell)?; FooDataChild::Baz(Arc::new(child_data)) Loading tools/pdl/tests/generated/packet_decl_grand_children_big_endian.rs +3 −3 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ impl ParentData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (foo) { (Enum16::A) => { (Enum16::A) if ChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = ChildData::parse_inner(&mut cell, bar, baz)?; ParentDataChild::Child(Arc::new(child_data)) Loading Loading @@ -360,7 +360,7 @@ impl ChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (bar, quux) { (Enum16::A, Enum16::A) => { (Enum16::A, Enum16::A) if GrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandChildData::parse_inner(&mut cell, baz)?; ChildDataChild::GrandChild(Arc::new(child_data)) Loading Loading @@ -547,7 +547,7 @@ impl GrandChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (baz) { (Enum16::A) => { (Enum16::A) if GrandGrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandGrandChildData::parse_inner(&mut cell)?; GrandChildDataChild::GrandGrandChild(Arc::new(child_data)) Loading tools/pdl/tests/generated/packet_decl_grand_children_little_endian.rs +3 −3 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ impl ParentData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (foo) { (Enum16::A) => { (Enum16::A) if ChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = ChildData::parse_inner(&mut cell, bar, baz)?; ParentDataChild::Child(Arc::new(child_data)) Loading Loading @@ -360,7 +360,7 @@ impl ChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (bar, quux) { (Enum16::A, Enum16::A) => { (Enum16::A, Enum16::A) if GrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandChildData::parse_inner(&mut cell, baz)?; ChildDataChild::GrandChild(Arc::new(child_data)) Loading Loading @@ -547,7 +547,7 @@ impl GrandChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (baz) { (Enum16::A) => { (Enum16::A) if GrandGrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandGrandChildData::parse_inner(&mut cell)?; GrandChildDataChild::GrandGrandChild(Arc::new(child_data)) Loading Loading
tools/pdl/src/backends/rust/parser.rs +1 −1 Original line number Diff line number Diff line Loading @@ -625,7 +625,7 @@ impl<'a> FieldParser<'a> { let packet_data_child = format_ident!("{}DataChild", self.packet_name); self.code.push(quote! { let child = match (#(#constrained_field_idents),*) { #(#match_values => { #(#match_values if #child_ids_data::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = #child_ids_data::parse_inner(&mut cell #child_parse_args)?; // TODO(mgeisler): communicate back to user if !cell.get().is_empty()? Loading
tools/pdl/tests/generated/packet_decl_child_packets_big_endian.rs +2 −2 Original line number Diff line number Diff line Loading @@ -172,12 +172,12 @@ impl FooData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (a, b) { (100, _) => { (100, _) if BarData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BarData::parse_inner(&mut cell)?; FooDataChild::Bar(Arc::new(child_data)) } (_, Enum16::B) => { (_, Enum16::B) if BazData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BazData::parse_inner(&mut cell)?; FooDataChild::Baz(Arc::new(child_data)) Loading
tools/pdl/tests/generated/packet_decl_child_packets_little_endian.rs +2 −2 Original line number Diff line number Diff line Loading @@ -172,12 +172,12 @@ impl FooData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (a, b) { (100, _) => { (100, _) if BarData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BarData::parse_inner(&mut cell)?; FooDataChild::Bar(Arc::new(child_data)) } (_, Enum16::B) => { (_, Enum16::B) if BazData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = BazData::parse_inner(&mut cell)?; FooDataChild::Baz(Arc::new(child_data)) Loading
tools/pdl/tests/generated/packet_decl_grand_children_big_endian.rs +3 −3 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ impl ParentData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (foo) { (Enum16::A) => { (Enum16::A) if ChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = ChildData::parse_inner(&mut cell, bar, baz)?; ParentDataChild::Child(Arc::new(child_data)) Loading Loading @@ -360,7 +360,7 @@ impl ChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (bar, quux) { (Enum16::A, Enum16::A) => { (Enum16::A, Enum16::A) if GrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandChildData::parse_inner(&mut cell, baz)?; ChildDataChild::GrandChild(Arc::new(child_data)) Loading Loading @@ -547,7 +547,7 @@ impl GrandChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (baz) { (Enum16::A) => { (Enum16::A) if GrandGrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandGrandChildData::parse_inner(&mut cell)?; GrandChildDataChild::GrandGrandChild(Arc::new(child_data)) Loading
tools/pdl/tests/generated/packet_decl_grand_children_little_endian.rs +3 −3 Original line number Diff line number Diff line Loading @@ -179,7 +179,7 @@ impl ParentData { let payload = &bytes.get()[..payload_size]; bytes.get_mut().advance(payload_size); let child = match (foo) { (Enum16::A) => { (Enum16::A) if ChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = ChildData::parse_inner(&mut cell, bar, baz)?; ParentDataChild::Child(Arc::new(child_data)) Loading Loading @@ -360,7 +360,7 @@ impl ChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (bar, quux) { (Enum16::A, Enum16::A) => { (Enum16::A, Enum16::A) if GrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandChildData::parse_inner(&mut cell, baz)?; ChildDataChild::GrandChild(Arc::new(child_data)) Loading Loading @@ -547,7 +547,7 @@ impl GrandChildData { let payload = bytes.get(); bytes.get_mut().advance(payload.len()); let child = match (baz) { (Enum16::A) => { (Enum16::A) if GrandGrandChildData::conforms(&payload) => { let mut cell = Cell::new(payload); let child_data = GrandGrandChildData::parse_inner(&mut cell)?; GrandChildDataChild::GrandGrandChild(Arc::new(child_data)) Loading