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

Method insert

crates/vm/src/stdlib/_collections.rs:191–214  ·  view source on GitHub ↗
(&self, idx: i32, obj: PyObjectRef, vm: &VirtualMachine)

Source from the content-addressed store, hash-verified

189
190 #[pymethod]
191 fn insert(&self, idx: i32, obj: PyObjectRef, vm: &VirtualMachine) -> PyResult<()> {
192 self.state.fetch_add(1);
193 let mut deque = self.borrow_deque_mut();
194
195 if self.maxlen == Some(deque.len()) {
196 return Err(vm.new_index_error("deque already at its maximum size"));
197 }
198
199 let idx = if idx < 0 {
200 if -idx as usize > deque.len() {
201 0
202 } else {
203 deque.len() - ((-idx) as usize)
204 }
205 } else if idx as usize > deque.len() {
206 deque.len()
207 } else {
208 idx as usize
209 };
210
211 deque.insert(idx, obj);
212
213 Ok(())
214 }
215
216 #[pymethod]
217 fn pop(&self, vm: &VirtualMachine) -> PyResult {

Callers 15

reserveMethod · 0.45
initMethod · 0.45
detachMethod · 0.45
decodeMethod · 0.45
compute_modeFunction · 0.45
com_errorFunction · 0.45
getenvironmentFunction · 0.45
registerFunction · 0.45
callMethod · 0.45
spawnMethod · 0.45
l_dictMethod · 0.45

Calls 4

borrow_deque_mutMethod · 0.80
SomeClass · 0.50
ErrClass · 0.50
lenMethod · 0.45

Tested by

no test coverage detected