(&mut self, code: u8)
| 98 | } |
| 99 | |
| 100 | fn get_line_delta(&mut self, code: u8) -> i32 { |
| 101 | let kind = match PyCodeLocationInfoKind::from_code(code) { |
| 102 | Some(k) => k, |
| 103 | None => return 0, |
| 104 | }; |
| 105 | |
| 106 | match kind { |
| 107 | PyCodeLocationInfoKind::None => 0, // NO_LINE marker |
| 108 | PyCodeLocationInfoKind::Long => { |
| 109 | let delta = self.reader.read_signed_varint(); |
| 110 | // Skip end_line, col, end_col |
| 111 | self.reader.read_varint(); |
| 112 | self.reader.read_varint(); |
| 113 | self.reader.read_varint(); |
| 114 | delta |
| 115 | } |
| 116 | PyCodeLocationInfoKind::NoColumns => self.reader.read_signed_varint(), |
| 117 | PyCodeLocationInfoKind::OneLine0 => { |
| 118 | self.reader.read_byte(); // Skip column |
| 119 | self.reader.read_byte(); // Skip end column |
| 120 | 0 |
| 121 | } |
| 122 | PyCodeLocationInfoKind::OneLine1 => { |
| 123 | self.reader.read_byte(); // Skip column |
| 124 | self.reader.read_byte(); // Skip end column |
| 125 | 1 |
| 126 | } |
| 127 | PyCodeLocationInfoKind::OneLine2 => { |
| 128 | self.reader.read_byte(); // Skip column |
| 129 | self.reader.read_byte(); // Skip end column |
| 130 | 2 |
| 131 | } |
| 132 | _ if kind.is_short() => { |
| 133 | self.reader.read_byte(); // Skip column byte |
| 134 | 0 |
| 135 | } |
| 136 | _ => 0, |
| 137 | } |
| 138 | } |
| 139 | } |
| 140 | |
| 141 | #[derive(FromArgs)] |
no test coverage detected