diff --git a/src/metafiles/v1.rs b/src/metafiles/v1.rs index 0401a82a..596b9591 100644 --- a/src/metafiles/v1.rs +++ b/src/metafiles/v1.rs @@ -11,7 +11,7 @@ use serde::{Deserialize, Serialize}; use thiserror::Error; use super::CrateVersionSource; -use crate::cargo_home; +use crate::{cargo_home, create_if_not_exist, FileLock}; #[derive(Clone, Debug, Default, Deserialize, Serialize)] pub struct CratesToml { @@ -55,6 +55,13 @@ impl CratesToml { Ok(data.len().try_into().unwrap()) } + pub fn write_to_file(&self, file: &mut fs::File) -> Result<(), CratesTomlParseError> { + let cnt = self.write_to_writer(&mut *file)?; + file.set_len(cnt)?; + + Ok(()) + } + pub fn write_to_path(&self, path: impl AsRef) -> Result<(), CratesTomlParseError> { fs::write(path, &toml::to_vec(&self)?)?; Ok(())