PyMember_GetOne
(
obj: PyObjectRef,
offset: usize,
member: &PyMemberDef,
vm: &VirtualMachine,
)
| 329 | |
| 330 | // PyMember_GetOne |
| 331 | fn 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 |
| 350 | fn set_slot_at_object( |
no test coverage detected