Improve LBA output even more
This commit is contained in:
parent
925872ac3e
commit
1855a0686a
|
@ -27,36 +27,43 @@ pub fn process(config: config_reader::Configuration, calculate_lba: CalculateLBA
|
|||
}
|
||||
|
||||
pub fn dump_content(cd_desc: &CDDesc, mut out: Output) -> Result<(), Error> {
|
||||
fn write_intro(out: &mut Output) -> Result<(), Error> {
|
||||
writeln!(out, "File: <File name> @<Track relative LBA> - <Size in Bytes>/<Extended size in bytes>")?;
|
||||
writeln!(out, "Dir: <Directory name> @<Track relative LBA>")?;
|
||||
writeln!(out, "")?;
|
||||
const NO_NAME:&'static str = "<No Name>";
|
||||
const ARROW:&'static str = "|==>";
|
||||
const INDENT_STEP:usize = 4;
|
||||
|
||||
Ok(())
|
||||
fn write_file(out: &mut Output, indent: usize, file_name: String, file_lba: usize, file_size: usize, file_ex_size: usize) -> Result<(), Error> {
|
||||
Ok(writeln!(out, "{:>indent$}File: {:<name_align$} @{:<lba_align$} ={:<size_align$} >{:<ex_size_align$}", ARROW, file_name, file_lba, file_size, file_ex_size,
|
||||
indent=indent + ARROW.len(), name_align=DEFAULT_CONTENT_ALIGNMENT.name, lba_align=DEFAULT_CONTENT_ALIGNMENT.lba, size_align=DEFAULT_CONTENT_ALIGNMENT.size, ex_size_align=DEFAULT_CONTENT_ALIGNMENT.ex_size)?)
|
||||
}
|
||||
|
||||
fn write_dir(out: &mut Output, indent: usize, dir_name: &str, dir_lba: usize) -> Result<(), Error> {
|
||||
Ok(writeln!(out, "{:>indent$}Dir: {:<name_align$} @{:<lba_align$}", ARROW, dir_name, dir_lba,
|
||||
indent=indent + ARROW.len(), name_align=DEFAULT_CONTENT_ALIGNMENT.name, lba_align=DEFAULT_CONTENT_ALIGNMENT.lba)?)
|
||||
}
|
||||
|
||||
fn write_intro(out: &mut Output) -> Result<(), Error> {
|
||||
writeln!(out, "{:>indent$}Type: {:<name_align$} @{:<lba_align$} ={:<size_align$} >{:<ex_size_align$}", "", "NAME", "LBA", "SIZE", "EXTENDED SIZE",
|
||||
indent=ARROW.len(), name_align=DEFAULT_CONTENT_ALIGNMENT.name, lba_align=DEFAULT_CONTENT_ALIGNMENT.lba, size_align=DEFAULT_CONTENT_ALIGNMENT.size, ex_size_align=DEFAULT_CONTENT_ALIGNMENT.ex_size)?;
|
||||
Ok(writeln!(out, "")?)
|
||||
}
|
||||
|
||||
fn dump_dir(dir: &Directory, out: &mut Output, indent: usize) -> Result<(), Error> {
|
||||
const ARROW:&'static str = "|==>";
|
||||
const INDENT_STEP:usize = 4;
|
||||
|
||||
for file in dir.file_iter() {
|
||||
let file = file.borrow();
|
||||
let file_name = file.name.as_string().unwrap_or("<No name>".to_owned());
|
||||
let file_name = file.name.as_string().unwrap_or(NO_NAME.to_owned());
|
||||
let file_lba = file.get_track_rel_lba();
|
||||
let file_size = file.properties.get_real_size();
|
||||
let file_ex_size = file.get_extended_size();
|
||||
|
||||
writeln!(out, "{:>indent$}File: {:<name_align$} @{:<lba_align$} ={:<size_align$} >{:<ex_size_align$}", ARROW, file_name, file_lba, file_size, file_ex_size,
|
||||
indent=indent + ARROW.len(), name_align=DEFAULT_CONTENT_ALIGNMENT.name, lba_align=DEFAULT_CONTENT_ALIGNMENT.lba, size_align=DEFAULT_CONTENT_ALIGNMENT.size, ex_size_align=DEFAULT_CONTENT_ALIGNMENT.ex_size)?;
|
||||
write_file(out, indent, file_name, file_lba, file_size, file_ex_size)?;
|
||||
}
|
||||
|
||||
for dir in dir.dir_iter() {
|
||||
let dir = dir.borrow();
|
||||
let dir_name = dir.name.as_str().unwrap_or("<No name>");
|
||||
let dir_name = dir.name.as_str().unwrap_or(NO_NAME);
|
||||
let dir_lba = dir.get_track_rel_lba();
|
||||
|
||||
writeln!(out, "{:>indent$}Dir: {:<name_align$} @{:<lba_align$}", ARROW, dir_name, dir_lba,
|
||||
indent=indent + ARROW.len(), name_align=DEFAULT_CONTENT_ALIGNMENT.name, lba_align=DEFAULT_CONTENT_ALIGNMENT.lba)?;
|
||||
write_dir(out, indent, dir_name, dir_lba)?;
|
||||
dump_dir(&dir, out, indent + INDENT_STEP)?;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue