(&self, bytes: ArgBytesLike, vm: &VirtualMachine)
| 1356 | |
| 1357 | #[pymethod] |
| 1358 | fn write(&self, bytes: ArgBytesLike, vm: &VirtualMachine) -> PyResult<PyIntRef> { |
| 1359 | let pos = self.pos(); |
| 1360 | let size = self.__len__(); |
| 1361 | |
| 1362 | let data = bytes.borrow_buf(); |
| 1363 | |
| 1364 | if pos > size || size - pos < data.len() { |
| 1365 | return Err(vm.new_value_error("data out of range")); |
| 1366 | } |
| 1367 | |
| 1368 | let len = self.try_writable(vm, |mmap| { |
| 1369 | (&mut mmap[pos..(pos + data.len())]) |
| 1370 | .write(&data) |
| 1371 | .map_err(|err| err.to_pyexception(vm))?; |
| 1372 | Ok(data.len()) |
| 1373 | })??; |
| 1374 | |
| 1375 | self.advance_pos(len); |
| 1376 | |
| 1377 | Ok(PyInt::from(len).into_ref(&vm.ctx)) |
| 1378 | } |
| 1379 | |
| 1380 | #[pymethod] |
| 1381 | fn write_byte(&self, byte: PyObjectRef, vm: &VirtualMachine) -> PyResult<()> { |
no test coverage detected