ninja_files_cookie2/
write.rs

1use 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
23//Writes the ninja file to the sink
24pub 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
30//Writes the ninja file to the sink
31pub 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}