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

Function get_slot_from_object

crates/vm/src/builtins/descriptor.rs:331–347  ·  view source on GitHub ↗

PyMember_GetOne

(
    obj: PyObjectRef,
    offset: usize,
    member: &PyMemberDef,
    vm: &VirtualMachine,
)

Source from the content-addressed store, hash-verified

329
330// PyMember_GetOne
331fn get_slot_from_object(
332 obj: PyObjectRef,
333 offset: usize,
334 member: &PyMemberDef,
335 vm: &VirtualMachine,
336) -> PyResult {
337 let slot = match member.kind {
338 MemberKind::Object => obj.get_slot(offset).unwrap_or_else(|| vm.ctx.none()),
339 MemberKind::Bool => obj
340 .get_slot(offset)
341 .unwrap_or_else(|| vm.ctx.new_bool(false).into()),
342 MemberKind::ObjectEx => obj.get_slot(offset).ok_or_else(|| {
343 vm.new_no_attribute_error(obj.clone(), vm.ctx.new_str(member.name.clone()))
344 })?,
345 };
346 Ok(slot)
347}
348
349// PyMember_SetOne
350fn set_slot_at_object(

Callers 1

getMethod · 0.85

Calls 7

get_slotMethod · 0.80
noneMethod · 0.80
ok_or_elseMethod · 0.80
new_boolMethod · 0.45
cloneMethod · 0.45
new_strMethod · 0.45

Tested by

no test coverage detected