pub trait OpenOptionsExt {
fn access_mode(&mut self, access: u32) -> &mut Self;
fn share_mode(&mut self, share: u32) -> &mut Self;
fn custom_flags(&mut self, flags: u32) -> &mut Self;
fn attributes(&mut self, attributes: u32) -> &mut Self;
fn security_qos_flags(&mut self, flags: u32) -> &mut Self;
}
impl OpenOptionsExt for crate::fs::OpenOptions {
fn access_mode(&mut self, access: u32) -> &mut Self {
self.platform_options_mut().access_mode = Some(access);
self
}
fn share_mode(&mut self, share: u32) -> &mut Self {
self.platform_options_mut().share_mode = Some(share);
self
}
fn custom_flags(&mut self, flags: u32) -> &mut Self {
self.platform_options_mut().custom_flags = flags;
self
}
fn attributes(&mut self, attributes: u32) -> &mut Self {
self.platform_options_mut().attributes = attributes;
self
}
fn security_qos_flags(&mut self, flags: u32) -> &mut Self {
self.platform_options_mut().security_qos_flags = flags;
self
}
}
pub trait MetadataExt {
fn file_attributes(&self) -> u32;
}
impl MetadataExt for crate::fs::Metadata {
fn file_attributes(&self) -> u32 {
self.platform_metadata().file_attributes
}
}