ninja_files_cookie2/
write.rs1use crate::cookie::{depfile, file};
2use cookie_factory::gen_simple;
3use ninja_files_data::{DepFile, File};
4use std::error::Error;
5use std::fmt::Display;
6use std::io::Write;
7
8#[derive(Debug)]
9pub struct WriteError(cookie_factory::GenError);
10
11impl From<cookie_factory::GenError> for WriteError {
12 fn from(value: cookie_factory::GenError) -> Self {
13 WriteError(value)
14 }
15}
16impl Error for WriteError {}
17impl Display for WriteError {
18 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
19 self.0.fmt(f)
20 }
21}
22
23pub fn write_ninja_file<W: Write>(ninja: &File, sink: W) -> Result<W, WriteError> {
25 let serializer = file(ninja);
26 let sink = gen_simple(serializer, sink)?;
27 Ok(sink)
28}
29
30pub fn write_dep_file<W: Write>(file: &DepFile, sink: W) -> Result<W, WriteError> {
32 let serializer = depfile(file);
33 let sink = gen_simple(serializer, sink)?;
34 Ok(sink)
35}