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

Method _getitem

crates/vm/src/builtins/tuple.rs:413–427  ·  view source on GitHub ↗
(&self, needle: &PyObject, vm: &VirtualMachine)

Source from the content-addressed store, hash-verified

411 }
412
413 fn _getitem(&self, needle: &PyObject, vm: &VirtualMachine) -> PyResult {
414 match SequenceIndex::try_from_borrowed_object(vm, needle, "tuple")? {
415 SequenceIndex::Int(i) => {
416 let index = self
417 .elements
418 .wrap_index(i)
419 .ok_or_else(|| vm.new_index_error("tuple index out of range"))?;
420 Ok(self.elements[index].clone())
421 }
422 SequenceIndex::Slice(slice) => self
423 .elements
424 .getitem_by_slice(vm, slice)
425 .map(|x| vm.ctx.new_tuple(x).into()),
426 }
427 }
428
429 fn __getitem__(&self, needle: PyObjectRef, vm: &VirtualMachine) -> PyResult {
430 self._getitem(&needle, vm)

Callers 1

__getitem__Method · 0.45

Calls 6

ok_or_elseMethod · 0.80
wrap_indexMethod · 0.80
cloneMethod · 0.45
mapMethod · 0.45
getitem_by_sliceMethod · 0.45
new_tupleMethod · 0.45

Tested by

no test coverage detected