object_getstate - calls __getstate__ method or default implementation
(obj: &PyObject, required: bool, vm: &VirtualMachine)
| 658 | |
| 659 | /// object_getstate - calls __getstate__ method or default implementation |
| 660 | fn object_getstate(obj: &PyObject, required: bool, vm: &VirtualMachine) -> PyResult { |
| 661 | // If __getstate__ is not overridden, use the default implementation with required flag |
| 662 | if !is_getstate_overridden(obj, vm) { |
| 663 | return object_getstate_default(obj, required, vm); |
| 664 | } |
| 665 | |
| 666 | // __getstate__ is overridden, call it without required |
| 667 | let getstate = obj.get_attr(identifier!(vm, __getstate__), vm)?; |
| 668 | getstate.call((), vm) |
| 669 | } |
| 670 | |
| 671 | /// Get list items iterator if obj is a list (or subclass), None iterator otherwise |
| 672 | fn get_items_iter(obj: &PyObjectRef, vm: &VirtualMachine) -> PyResult<(PyObjectRef, PyObjectRef)> { |
no test coverage detected