7KNPYIDUXCBZ65NA74NL2DIFS6STJWN4XXHXLTIV5QXZSVLARJMAC SBSM3VZVFD2A5MD5P3XEUH4LFONYABZCKRNAGIHGTSZOG2QS5SYAC QU6T6J6WEZ6IYZC57YAUCET2V6WHVKJ2Q4UGB2GOK45VIGDPBR2QC SXEYMYF7P4RZMZ46WPL4IZUTSQ2ATBWYZX7QNVMS3SGOYXYOHAGQC VO5OQW4W2656DIYYRNZ3PO7TQ4JOKQ3GVWE5ALUTYVMX3WMXJOYQC I24UEJQLCH2SOXA4UHIYWTRDCHSOPU7AFTRUOTX7HZIAV4AZKYEQC EAAJNZ3J57QH5P5UWJD5CRN62HZKCRW5BKLUCIHSFFKXLUVEFH2AC TVVW53HZGYPODAXEQ4BFZNSPBOFG6JEDVOKIYIDZMWFAMOBKOR2QC NYOF5766GLBTWQV2KTVRAJMGVJNJ37Z5BLJMFPZA3HG7X2Q2RXPAC MOPABMFWZOEMCIQMLEFH74NGTFV6K26FGUFETV3FG5VHCBGLXDIQC FXEDPLRI7PXLDXV634ZA6D5Q3ZWG3ESTKJTMRPJ4MAHI7PKU3M6AC X7OHUPL5VYT6ECER2KNGRNFLRX7SBZOM5QWSQ4PBO2UPIE7XM6MAC JP3BYVXXWFBVQ23MEHJ3LE36AN26P6OCZALKUXMNLHS2TSTM3NKAC RRCSHAYZ6RLWVPNYHF2F5FSRL2KKJNPQUQRIJYLJGB23BZQQ7JLQC GHO6DWPILBBTL6CVZKERJBTFL3EY6ZT4YM4E5R4S6YPGVFKFHCVAC CCLLB7OIFNFYJZTG3UCI7536TOCWSCSXR67VELSB466R24WLJSDAC O4DNWMPDUWI6SKYOZTQKCSX6MSR73CTGCUSM65TSQYVOUSAAS6KAC LERRJNFC6324RC6ADDTEPCNR3MYH6GKIQUDD433ZAIEECFF5CADAC ZSF3YFZTDOXMCOC3HOT5C6MQLYLWOR7QJAOUDS2M2Z4SC2YW3GRAC fn remove_path(&self, name: &str, rec: bool) -> Result<(), Self::Error>;fn rename(&self, former: &str, new: &str) -> Result<(), Self::Error>;fn set_permissions(&self, name: &str, permissions: u16) -> Result<(), Self::Error>;type Writer: std::io::Write;fn write_file(&self, file: &str) -> Result<Self::Writer, Self::Error>;
pub trait WorkingCopy: WorkingCopyRead {fn create_dir_all(&self, path: &str) -> Result<(), Self::Error>;fn remove_path(&self, name: &str, rec: bool) -> Result<(), Self::Error>;fn rename(&self, former: &str, new: &str) -> Result<(), Self::Error>;fn set_permissions(&self, name: &str, permissions: u16) -> Result<(), Self::Error>;type Writer: std::io::Write;fn write_file(&self, file: &str) -> Result<Self::Writer, Self::Error>;}
fn create_dir_all(&self, file: &str) -> Result<(), Self::Error> {let not_already_exists = {let m = self.0.lock();m.get_file(file).is_none()};if not_already_exists {let last = SystemTime::now();self.add_inode(file,Inode::Directory {meta: InodeMetadata::new(0o100, true),children: FileTree {children: HashMap::default(),},last_modified: last,},);}Ok(())}
impl WorkingCopy for Memory {fn create_dir_all(&self, file: &str) -> Result<(), Self::Error> {let not_already_exists = {let m = self.0.lock();m.get_file(file).is_none()};if not_already_exists {let last = SystemTime::now();self.add_inode(file,Inode::Directory {meta: InodeMetadata::new(0o100, true),children: FileTree {children: HashMap::default(),},last_modified: last,},);}Ok(())}
fn create_dir_all(&self, file: &str) -> Result<(), Self::Error> {debug!("create_dir_all {:?}", file);Ok(std::fs::create_dir_all(&self.path(file))?)}