MCPcopy Index your code
hub / github.com/RustPython/RustPython / get_line_delta

Method get_line_delta

crates/vm/src/builtins/code.rs:100–138  ·  view source on GitHub ↗
(&mut self, code: u8)

Source from the content-addressed store, hash-verified

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)]

Callers 1

advanceMethod · 0.80

Calls 4

read_signed_varintMethod · 0.80
read_varintMethod · 0.80
is_shortMethod · 0.80
read_byteMethod · 0.45

Tested by

no test coverage detected