Add new fn Crates2Json::write_to_file

Signed-off-by: Jiahao XU <Jiahao_XU@outlook.com>
This commit is contained in:
Jiahao XU 2022-07-22 22:48:54 +10:00
parent 1766b92547
commit d432d54c28
No known key found for this signature in database
GPG key ID: 591C0B03040416D6

View file

@ -1,6 +1,7 @@
use std::{ use std::{
collections::{BTreeMap, BTreeSet}, collections::{BTreeMap, BTreeSet},
fs, io, fs,
io::{self, Seek},
iter::IntoIterator, iter::IntoIterator,
path::{Path, PathBuf}, path::{Path, PathBuf},
}; };
@ -70,6 +71,14 @@ impl Crates2Json {
Ok(()) Ok(())
} }
pub fn write_to_file(&self, file: &mut fs::File) -> Result<(), Crates2JsonParseError> {
self.write_to_writer(&mut *file)?;
let pos = file.stream_position()?;
file.set_len(pos)?;
Ok(())
}
pub fn write_to_path(&self, path: impl AsRef<Path>) -> Result<(), Crates2JsonParseError> { pub fn write_to_path(&self, path: impl AsRef<Path>) -> Result<(), Crates2JsonParseError> {
let file = fs::File::create(path.as_ref())?; let file = fs::File::create(path.as_ref())?;
self.write_to_writer(file) self.write_to_writer(file)