Lines Matching refs:IoVec
151 /// both reading and writing. Each `IoVec` specifies the base address and
155 note = "`IoVec` is no longer used in the public interface, use `IoSlice` or `IoSliceMut` instead"
163 pub struct IoVec<T>(pub(crate) libc::iovec, PhantomData<T>);
166 impl<T> IoVec<T> {
167 /// View the `IoVec` as a Rust slice.
183 impl<'a> IoVec<&'a [u8]> {
184 /// Create an `IoVec` from a Rust slice.
186 pub fn from_slice(buf: &'a [u8]) -> IoVec<&'a [u8]> {
187 IoVec(
198 impl<'a> IoVec<&'a mut [u8]> {
199 /// Create an `IoVec` from a mutable Rust slice.
201 pub fn from_mut_slice(buf: &'a mut [u8]) -> IoVec<&'a mut [u8]> {
202 IoVec(
212 // The only reason IoVec isn't automatically Send+Sync is because libc::iovec
215 unsafe impl<T> Send for IoVec<T> where T: Send {}
217 unsafe impl<T> Sync for IoVec<T> where T: Sync {}