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

Method _mul

crates/vm/src/stdlib/_collections.rs:317–329  ·  view source on GitHub ↗
(&self, n: isize, vm: &VirtualMachine)

Source from the content-addressed store, hash-verified

315 }
316
317 fn _mul(&self, n: isize, vm: &VirtualMachine) -> PyResult<VecDeque<PyObjectRef>> {
318 let deque = self.borrow_deque();
319 let n = vm.check_repeat_or_overflow_error(deque.len(), n)?;
320 let mul_len = n * deque.len();
321 let iter = deque.iter().cycle().take(mul_len);
322 let skipped = self
323 .maxlen
324 .and_then(|maxlen| mul_len.checked_sub(maxlen))
325 .unwrap_or(0);
326
327 let deque = iter.skip(skipped).cloned().collect();
328 Ok(deque)
329 }
330
331 fn __mul__(&self, n: isize, vm: &VirtualMachine) -> PyResult<Self> {
332 let deque = self._mul(n, vm)?;

Callers 3

mulFunction · 0.45
__mul__Method · 0.45
__imul__Method · 0.45

Calls 8

borrow_dequeMethod · 0.80
cycleMethod · 0.80
collectMethod · 0.80
lenMethod · 0.45
takeMethod · 0.45
iterMethod · 0.45
skipMethod · 0.45

Tested by

no test coverage detected