#[derive(Debug)]
pub struct OpenOptions {
pub read: bool,
pub write: bool,
pub create: bool,
pub truncate: bool,
}
impl Default for OpenOptions {
fn default() -> Self {
Self {
read: true,
write: false,
create: false,
truncate: false,
}
}
}
impl OpenOptions {
pub fn read(mut self, read: bool) -> Self {
self.read = read;
self
}
pub fn write(mut self, write: bool) -> Self {
self.write = write;
self
}
pub fn create(mut self, create: bool) -> Self {
self.create = create;
if create {
self.write = true;
}
self
}
pub fn truncate(mut self, truncate: bool) -> Self {
self = self.write(true);
self.truncate = truncate;
self
}
}