Skip to content

Commit

Permalink
Update OpenOptions::as_flags docs, and minor styling
Browse files Browse the repository at this point in the history
  • Loading branch information
FedericoPonzi committed Aug 31, 2020
1 parent 2c9e27b commit 7c1e5c1
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 9 deletions.
17 changes: 8 additions & 9 deletions library/std/src/sys/unix/ext/fs.rs
Expand Up @@ -346,9 +346,13 @@ pub trait OpenOptionsExt {
#[stable(feature = "open_options_ext", since = "1.10.0")]
fn custom_flags(&mut self, flags: i32) -> &mut Self;

/// Get the flags of this OpenOptions as libc::c_int.
/// Get the flags of this OpenOptions as [`libc::c_int`].
/// With: [`libc::open`]
///
/// This method allows the reuse of the OpenOptions as flags argument for `libc::open()`.
/// This method allows the reuse of the OpenOptions as flags argument for [`fs::OpenOptions`].
///
/// [`libc::c_int`]: https://docs.rs/libc/*/libc/type.c_int.html
/// [`libc::open`]: https://docs.rs/libc/*/libc/fn.open.html
///
/// # Examples
///
Expand All @@ -359,16 +363,10 @@ pub trait OpenOptionsExt {
/// use std::fs::OpenOptions;
/// use std::os::unix::fs::OpenOptionsExt;
///
/// # fn main() {
/// let mut options = OpenOptions::new();
/// options.write(true).read(true);
/// if cfg!(unix) {
/// options.custom_flags(libc::O_NOFOLLOW);
/// }
/// let file_name = CString::new("foo.txt").unwrap();
/// let file = unsafe{ libc::open(file_name.as_c_str().as_ptr(), options.as_flags().unwrap()) };
///
/// # }
/// let file = unsafe { libc::open(file_name.as_c_str().as_ptr(), options.as_flags().unwrap()) };
/// ```
#[stable(feature = "open_options_ext_as_flags", since = "1.47.0")]
fn as_flags(&self) -> io::Result<libc::c_int>;
Expand All @@ -385,6 +383,7 @@ impl OpenOptionsExt for OpenOptions {
self.as_inner_mut().custom_flags(flags);
self
}

fn as_flags(&self) -> io::Result<libc::c_int> {
self.as_inner().as_flags()
}
Expand Down
1 change: 1 addition & 0 deletions library/std/src/sys/unix/fs.rs
Expand Up @@ -660,6 +660,7 @@ impl OpenOptions {
let creation_mode = self.get_creation_mode()?;
Ok(creation_mode | access_mode | self.custom_flags)
}

fn get_access_mode(&self) -> io::Result<c_int> {
match (self.read, self.write, self.append) {
(true, false, false) => Ok(libc::O_RDONLY),
Expand Down

0 comments on commit 7c1e5c1

Please sign in to comment.