about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGuillaume Gomez <guillaume1.gomez@gmail.com>2020-09-24 14:49:59 +0200
committerGuillaume Gomez <guillaume1.gomez@gmail.com>2020-09-25 21:20:42 +0200
commit980e1ff40f51b6b4b86ee70809d0a0055e6f9cc6 (patch)
treeb93d57fae044e061ba797d195e9d96ec149744d4
parentfadf0257235ddb8a464befc02e50b35652174689 (diff)
downloadrust-980e1ff40f51b6b4b86ee70809d0a0055e6f9cc6.tar.gz
rust-980e1ff40f51b6b4b86ee70809d0a0055e6f9cc6.zip
Add missing examples for Fd traits
-rw-r--r--library/std/src/sys/unix/ext/io.rs43
1 files changed, 43 insertions, 0 deletions
diff --git a/library/std/src/sys/unix/ext/io.rs b/library/std/src/sys/unix/ext/io.rs
index ec7a32b675c..ef780fa8cca 100644
--- a/library/std/src/sys/unix/ext/io.rs
+++ b/library/std/src/sys/unix/ext/io.rs
@@ -25,6 +25,20 @@ pub trait AsRawFd {
     /// This method does **not** pass ownership of the raw file descriptor
     /// to the caller. The descriptor is only guaranteed to be valid while
     /// the original object has not yet been destroyed.
+    ///
+    /// # Example
+    ///
+    /// ```no_run
+    /// use std::fs::File;
+    /// use std::os::unix::io::{AsRawFd, RawFd};
+    ///
+    /// fn main() -> std::io::Result<()> {
+    ///     let mut f = File::open("foo.txt")?;
+    ///     // Note that `raw_fd` is only valid as long as `f` exists.
+    ///     let raw_fd: RawFd = f.as_raw_fd();
+    ///     Ok(())
+    /// }
+    /// ```
     #[stable(feature = "rust1", since = "1.0.0")]
     fn as_raw_fd(&self) -> RawFd;
 }
@@ -45,6 +59,22 @@ pub trait FromRawFd {
     /// descriptor they are wrapping. Usage of this function could
     /// accidentally allow violating this contract which can cause memory
     /// unsafety in code that relies on it being true.
+    ///
+    /// # Example
+    ///
+    /// ```no_run
+    /// use std::fs::File;
+    /// use std::os::unix::io::{FromRawFd, IntoRawFd, RawFd};
+    ///
+    /// fn main() -> std::io::Result<()> {
+    ///     let f = File::open("foo.txt")?;
+    ///     let raw_fd: RawFd = f.into_raw_fd();
+    ///     // SAFETY: no other functions should call `from_raw_fd`, so there
+    ///     // is only one owner for the file descriptor.
+    ///     let f = unsafe { File::from_raw_fd(raw_fd) };
+    ///     Ok(())
+    /// }
+    /// ```
     #[stable(feature = "from_raw_os", since = "1.1.0")]
     unsafe fn from_raw_fd(fd: RawFd) -> Self;
 }
@@ -58,6 +88,19 @@ pub trait IntoRawFd {
     /// This function **transfers ownership** of the underlying file descriptor
     /// to the caller. Callers are then the unique owners of the file descriptor
     /// and must close the descriptor once it's no longer needed.
+    ///
+    /// # Example
+    ///
+    /// ```no_run
+    /// use std::fs::File;
+    /// use std::os::unix::io::{IntoRawFd, RawFd};
+    ///
+    /// fn main() -> std::io::Result<()> {
+    ///     let f = File::open("foo.txt")?;
+    ///     let raw_fd: RawFd = f.into_raw_fd();
+    ///     Ok(())
+    /// }
+    /// ```
     #[stable(feature = "into_raw_os", since = "1.4.0")]
     fn into_raw_fd(self) -> RawFd;
 }