Write cue file

This commit is contained in:
2022-10-28 22:02:04 +02:00
parent 01aaddca59
commit 1109de55a5
4 changed files with 43 additions and 14 deletions

View File

@@ -1,8 +1,12 @@
use std::{fs::File, io::Write};
use super::{{super::super::Error}, *};
pub fn write(mut file: File, data: Vec<Specifier>) -> Result<(), Error> {
fn write_indent(file: &mut File, specifier: &Specifier) -> Result<(), Error> {
pub fn write(file: File, data: Vec<Specifier>) -> Result<(), Error> {
write_generic(file, data)
}
pub fn write_generic<T: Write>(mut dst: T, data: Vec<Specifier>) -> Result<(), Error> {
fn write_indent<T: Write>(dst: &mut T, specifier: &Specifier) -> Result<(), Error> {
let indent = {
match specifier {
Specifier::File{..} => 0,
@@ -11,14 +15,16 @@ pub fn write(mut file: File, data: Vec<Specifier>) -> Result<(), Error> {
}
};
write!(file, "{:indent$}", " ")?;
if indent > 0 {
write!(dst, "{:indent$}", " ")?;
}
Ok(())
}
for specifier in data {
write_indent(&mut file, &specifier)?;
write_indent(&mut dst, &specifier)?;
write!(file, "{}\n", specifier)?;
write!(dst, "{}\n", specifier)?;
}
Ok(())