From e1b6fb85aa963532fa2b2fc1dbf7364033cb17ba Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Fri, 22 Jul 2022 22:22:18 +1000 Subject: [PATCH] Add new fn `CratesToml::write_to_file` Signed-off-by: Jiahao XU --- src/metafiles/v1.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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(())