pub struct OpenOptions { /* private fields */ }Expand description
Options for opening files, mirroring std::fs::OpenOptions.
§Example
use uring_file::fs::OpenOptions;
// Open for reading
let file = OpenOptions::new().read(true).open("foo.txt").await?;
// Create for writing
let file = OpenOptions::new()
.write(true)
.create(true)
.truncate(true)
.open("bar.txt")
.await?;
// Append to existing
let file = OpenOptions::new()
.append(true)
.open("log.txt")
.await?;
// Create new (fails if exists)
let file = OpenOptions::new()
.write(true)
.create_new(true)
.open("new.txt")
.await?;Implementations§
Source§impl OpenOptions
impl OpenOptions
Sourcepub fn new() -> Self
pub fn new() -> Self
Creates a blank new set of options.
All options are initially set to false.
Sourcepub fn append(&mut self, append: bool) -> &mut Self
pub fn append(&mut self, append: bool) -> &mut Self
Sets append mode.
Writes will append to the file instead of overwriting.
Implies write(true).
Sourcepub fn truncate(&mut self, truncate: bool) -> &mut Self
pub fn truncate(&mut self, truncate: bool) -> &mut Self
Sets truncate mode.
If the file exists, it will be truncated to zero length.
Requires write(true).
Sourcepub fn create(&mut self, create: bool) -> &mut Self
pub fn create(&mut self, create: bool) -> &mut Self
Sets create mode.
Creates the file if it doesn’t exist. Requires write(true) or append(true).
Sourcepub fn create_new(&mut self, create_new: bool) -> &mut Self
pub fn create_new(&mut self, create_new: bool) -> &mut Self
Sets create-new mode.
Creates a new file, failing if it already exists.
Implies create(true) and requires write(true).
Sourcepub fn mode(&mut self, mode: u32) -> &mut Self
pub fn mode(&mut self, mode: u32) -> &mut Self
Sets the file mode (permissions) for newly created files.
Default is 0o644.
Sourcepub fn custom_flags(&mut self, flags: i32) -> &mut Self
pub fn custom_flags(&mut self, flags: i32) -> &mut Self
Sets custom flags to pass to the underlying open syscall.
This allows flags like O_DIRECT, O_SYNC, O_NOFOLLOW, O_CLOEXEC, etc.
The flags are OR’d with the flags derived from other options.
§Example
let file = OpenOptions::new()
.read(true)
.write(true)
.create(true)
.custom_flags(libc::O_DIRECT | libc::O_SYNC)
.open("data.bin")
.await?;Trait Implementations§
Source§impl Clone for OpenOptions
impl Clone for OpenOptions
Source§fn clone(&self) -> OpenOptions
fn clone(&self) -> OpenOptions
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more