diff options
| author | Nixon Enraght-Moony <nixon.emoony@gmail.com> | 2022-02-13 01:25:54 +0000 |
|---|---|---|
| committer | Nixon Enraght-Moony <nixon.emoony@gmail.com> | 2022-02-13 01:25:54 +0000 |
| commit | ae158224acb8a85efce18cd358a445d18c6c6389 (patch) | |
| tree | 37ba7dd6d6c32e6ef39d19aa1fb14221f3fe8d9a | |
| parent | 3cfa4def7c87d571bd46d92fed608edf8fad236e (diff) | |
| download | rust-ae158224acb8a85efce18cd358a445d18c6c6389.tar.gz rust-ae158224acb8a85efce18cd358a445d18c6c6389.zip | |
rustdoc-json: buffer output
| -rw-r--r-- | src/librustdoc/json/mod.rs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/librustdoc/json/mod.rs b/src/librustdoc/json/mod.rs index f9e9fe0d3cf..52980e07b8c 100644 --- a/src/librustdoc/json/mod.rs +++ b/src/librustdoc/json/mod.rs @@ -8,6 +8,7 @@ mod conversions; use std::cell::RefCell; use std::fs::{create_dir_all, File}; +use std::io::{BufWriter, Write}; use std::path::PathBuf; use std::rc::Rc; @@ -213,7 +214,7 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> { let mut index = (*self.index).clone().into_inner(); index.extend(self.get_trait_items()); // This needs to be the default HashMap for compatibility with the public interface for - // rustdoc-json + // rustdoc-json-types #[allow(rustc::default_hash_types)] let output = types::Crate { root: types::Id(String::from("0:0")), @@ -263,8 +264,10 @@ impl<'tcx> FormatRenderer<'tcx> for JsonRenderer<'tcx> { let mut p = out_dir; p.push(output.index.get(&output.root).unwrap().name.clone().unwrap()); p.set_extension("json"); - let file = try_err!(File::create(&p), p); - serde_json::ser::to_writer(&file, &output).unwrap(); + let mut file = BufWriter::new(try_err!(File::create(&p), p)); + serde_json::ser::to_writer(&mut file, &output).unwrap(); + try_err!(file.flush(), p); + Ok(()) } |
