Write cue file
This commit is contained in:
@@ -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(())
|
||||
|
Reference in New Issue
Block a user