Introduce `OwnedFd` and `BorrowedFd`, and the `AsFd` trait, and implementations of `AsFd`, `From<OwnedFd>` and `From<T> for OwnedFd` for relevant types, along with Windows counterparts for handles and sockets. Tracking issue: - <https://github.com/rust-lang/rust/issues/87074> RFC: - <https://github.com/rust-lang/rfcs/blob/master/text/3128-io-safety.md>
11 lines
331 B
Rust
11 lines
331 B
Rust
use super::{FileDesc, IoSlice};
|
|
use crate::os::unix::io::FromRawFd;
|
|
use core::mem::ManuallyDrop;
|
|
|
|
#[test]
|
|
fn limit_vector_count() {
|
|
let stdout = ManuallyDrop::new(unsafe { FileDesc::from_raw_fd(1) });
|
|
let bufs = (0..1500).map(|_| IoSlice::new(&[])).collect::<Vec<_>>();
|
|
assert!(stdout.write_vectored(&bufs).is_ok());
|
|
}
|