in src/storage.rs [1660:1693]
fn drop(&mut self) {
let state = self.state.get_mut().unwrap();
if let Some(diff_cache_path) = &self.diff_cache_path {
// Write back the diff_cache
if let Err(err) = || -> Result<(), CacheCommitError> {
let diff_cache = store_diff_cache(mem::take(&mut state.diff_cache))?;
fs::write(diff_cache_path, diff_cache)?;
Ok(())
}() {
error!("error writing back changes to diff-cache: {:?}", err);
}
}
if let Some(command_history_path) = &self.command_history_path {
// Write back the command_history
if let Err(err) = || -> Result<(), CacheCommitError> {
let command_history = store_command_history(mem::take(&mut state.command_history))?;
fs::write(command_history_path, command_history)?;
Ok(())
}() {
error!("error writing back changes to command history: {:?}", err);
}
}
if let Some(publisher_cache_path) = &self.publisher_cache_path {
// Write back the publisher_cache
if let Err(err) = || -> Result<(), CacheCommitError> {
let publisher_cache = store_publisher_cache(mem::take(&mut state.crates_cache))?;
fs::write(publisher_cache_path, publisher_cache)?;
Ok(())
}() {
error!("error writing back changes to publisher-cache: {:?}", err);
}
}
// `_lock: FileLock` implicitly released here
}