From c54ff0599ec67c20456c619f8946e27ab36f145b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Oko=C5=84ski?= Date: Mon, 11 Jun 2018 05:56:35 +0200 Subject: [PATCH] Make preadv take immutable slice of IoVecs, fixes #913 --- CHANGELOG.md | 1 + src/sys/uio.rs | 2 +- test/sys/test_uio.rs | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 69484bbff6..4d53add274 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ This project adheres to [Semantic Versioning](http://semver.org/). ### Added ### Changed +- Made `preadv` take immutable slice of IoVec. ([issue #913](https://github.com/nix-rust/nix/issues/913)) ### Fixed diff --git a/src/sys/uio.rs b/src/sys/uio.rs index 305c2ad0c1..45860be5aa 100644 --- a/src/sys/uio.rs +++ b/src/sys/uio.rs @@ -51,7 +51,7 @@ pub fn pwritev(fd: RawFd, iov: &[IoVec<&[u8]>], target_os = "linux", target_os = "netbsd", target_os = "openbsd"))] -pub fn preadv(fd: RawFd, iov: &mut [IoVec<&mut [u8]>], +pub fn preadv(fd: RawFd, iov: &[IoVec<&mut [u8]>], offset: off_t) -> Result { let res = unsafe { libc::preadv(fd, iov.as_ptr() as *const libc::iovec, iov.len() as c_int, offset) diff --git a/test/sys/test_uio.rs b/test/sys/test_uio.rs index c6331f1d7b..9f56c810a1 100644 --- a/test/sys/test_uio.rs +++ b/test/sys/test_uio.rs @@ -182,9 +182,9 @@ fn test_preadv() { { // Borrow the buffers into IoVecs and preadv into them - let mut iovecs: Vec<_> = buffers.iter_mut().map( + let iovecs: Vec<_> = buffers.iter_mut().map( |buf| IoVec::from_mut_slice(&mut buf[..])).collect(); - assert_eq!(Ok(100), preadv(file.as_raw_fd(), &mut iovecs, 100)); + assert_eq!(Ok(100), preadv(file.as_raw_fd(), &iovecs, 100)); } let all = buffers.concat();