(&self, iter: &PyObject, vm: &VirtualMachine)
| 122 | } |
| 123 | |
| 124 | fn _extend(&self, iter: &PyObject, vm: &VirtualMachine) -> PyResult<()> { |
| 125 | self.state.fetch_add(1); |
| 126 | let max_len = self.maxlen; |
| 127 | let mut elements: Vec<PyObjectRef> = iter.try_to_value(vm)?; |
| 128 | if let Some(max_len) = max_len { |
| 129 | if max_len > elements.len() { |
| 130 | let mut deque = self.borrow_deque_mut(); |
| 131 | let drain_until = deque.len().saturating_sub(max_len - elements.len()); |
| 132 | deque.drain(..drain_until); |
| 133 | } else { |
| 134 | self.borrow_deque_mut().clear(); |
| 135 | elements.drain(..(elements.len() - max_len)); |
| 136 | } |
| 137 | } |
| 138 | self.borrow_deque_mut().extend(elements); |
| 139 | Ok(()) |
| 140 | } |
| 141 | |
| 142 | #[pymethod] |
| 143 | fn extendleft(&self, iter: PyObjectRef, vm: &VirtualMachine) -> PyResult<()> { |
no test coverage detected