Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 55e4885f authored by David Duarte's avatar David Duarte Committed by Automerger Merge Worker
Browse files

Merge "pdl: Call conforms before attempting to parse" am: c7f025e7 am: e4ac348c

parents 26c4ceb6 e4ac348c
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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()?
+2 −2
Original line number Diff line number Diff line
@@ -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))
+2 −2
Original line number Diff line number Diff line
@@ -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))
+3 −3
Original line number Diff line number Diff line
@@ -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))
@@ -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))
@@ -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))
+3 −3
Original line number Diff line number Diff line
@@ -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))
@@ -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))
@@ -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))