(vm: &VirtualMachine, obj: PyObjectRef)
| 75 | B: TryFromObject, |
| 76 | { |
| 77 | fn try_from_object(vm: &VirtualMachine, obj: PyObjectRef) -> PyResult<Self> { |
| 78 | A::try_from_object(vm, obj.clone()) |
| 79 | .map(Either::A) |
| 80 | .or_else(|_| B::try_from_object(vm, obj.clone()).map(Either::B)) |
| 81 | .map_err(|_| vm.new_type_error(format!("unexpected type {}", obj.class()))) |
| 82 | } |
| 83 | } |