| 210 | } |
| 211 | |
| 212 | pub fn inplace_repeat(self, n: isize, vm: &VirtualMachine) -> PyResult { |
| 213 | if let Some(f) = self.slots().inplace_repeat.load() { |
| 214 | return f(self, n, vm); |
| 215 | } |
| 216 | if let Some(f) = self.slots().repeat.load() { |
| 217 | return f(self, n, vm); |
| 218 | } |
| 219 | |
| 220 | if self.check() { |
| 221 | let ret = vm._imul(self.obj, &n.to_pyobject(vm))?; |
| 222 | if let PyArithmeticValue::Implemented(ret) = PyArithmeticValue::from_object(vm, ret) { |
| 223 | return Ok(ret); |
| 224 | } |
| 225 | } |
| 226 | |
| 227 | Err(vm.new_type_error(format!("'{}' object can't be repeated", self.obj.class()))) |
| 228 | } |
| 229 | |
| 230 | pub fn get_item(self, i: isize, vm: &VirtualMachine) -> PyResult { |
| 231 | if let Some(f) = self.slots().item.load() { |