| 312 | |
| 313 | #[pymethod] |
| 314 | fn __reduce__(&self, vm: &VirtualMachine) -> (PyTypeRef, PyTupleRef) { |
| 315 | let range_parameters: Vec<PyObjectRef> = [&self.start, &self.stop, &self.step] |
| 316 | .iter() |
| 317 | .map(|x| x.as_object().to_owned()) |
| 318 | .collect(); |
| 319 | let range_parameters_tuple = vm.ctx.new_tuple(range_parameters); |
| 320 | (vm.ctx.types.range_type.to_owned(), range_parameters_tuple) |
| 321 | } |
| 322 | |
| 323 | fn __getitem__(&self, subscript: PyObjectRef, vm: &VirtualMachine) -> PyResult { |
| 324 | match RangeIndex::try_from_object(vm, subscript)? { |