aboutsummaryrefslogtreecommitdiff
path: root/vendor/rustix/src/io/is_read_write.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/rustix/src/io/is_read_write.rs')
-rw-r--r--vendor/rustix/src/io/is_read_write.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/vendor/rustix/src/io/is_read_write.rs b/vendor/rustix/src/io/is_read_write.rs
new file mode 100644
index 0000000..af33806
--- /dev/null
+++ b/vendor/rustix/src/io/is_read_write.rs
@@ -0,0 +1,19 @@
+//! The [`is_read_write`] function.
+//!
+//! [`is_read_write`]: https://docs.rs/rustix/*/rustix/io/fn.is_read_write.html
+
+use crate::{backend, io};
+use backend::fd::AsFd;
+
+/// Returns a pair of booleans indicating whether the file descriptor is
+/// readable and/or writable, respectively.
+///
+/// Unlike [`is_file_read_write`], this correctly detects whether sockets
+/// have been shutdown, partially or completely.
+///
+/// [`is_file_read_write`]: crate::fs::is_file_read_write
+#[inline]
+#[cfg_attr(doc_cfg, doc(cfg(all(feature = "fs", feature = "net"))))]
+pub fn is_read_write<Fd: AsFd>(fd: Fd) -> io::Result<(bool, bool)> {
+ backend::io::syscalls::is_read_write(fd.as_fd())
+}