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

Method _setitem

crates/vm/src/builtins/bytearray.rs:105–127  ·  view source on GitHub ↗
(
        zelf: &Py<Self>,
        needle: &PyObject,
        value: PyObjectRef,
        vm: &VirtualMachine,
    )

Source from the content-addressed store, hash-verified

103 }
104
105 fn _setitem(
106 zelf: &Py<Self>,
107 needle: &PyObject,
108 value: PyObjectRef,
109 vm: &VirtualMachine,
110 ) -> PyResult<()> {
111 match SequenceIndex::try_from_borrowed_object(vm, needle, "bytearray")? {
112 SequenceIndex::Int(i) => zelf._setitem_by_index(i, value, vm),
113 SequenceIndex::Slice(slice) => {
114 let items = if zelf.is(&value) {
115 zelf.borrow_buf().to_vec()
116 } else {
117 bytes_from_object(vm, &value)?
118 };
119 if let Some(mut w) = zelf.try_resizable_opt() {
120 w.elements.setitem_by_slice(vm, slice, &items)
121 } else {
122 zelf.borrow_buf_mut()
123 .setitem_by_slice_no_resize(vm, slice, &items)
124 }
125 }
126 }
127 }
128
129 fn _getitem(&self, needle: &PyObject, vm: &VirtualMachine) -> PyResult {
130 match SequenceIndex::try_from_borrowed_object(vm, needle, "bytearray")? {

Callers

nothing calls this directly

Calls 9

bytes_from_objectFunction · 0.85
_setitem_by_indexMethod · 0.80
isMethod · 0.80
to_vecMethod · 0.80
borrow_bufMethod · 0.45
try_resizable_optMethod · 0.45
setitem_by_sliceMethod · 0.45
borrow_buf_mutMethod · 0.45

Tested by

no test coverage detected