Create nice LBA file
This commit is contained in:
parent
80dadf1ac1
commit
925872ac3e
|
@ -10,6 +10,15 @@ use types::{CDDesc, Directory};
|
|||
|
||||
pub type CalculateLBAFunction = fn(&mut types::CDDesc);
|
||||
|
||||
struct ContentDumpAlignment {
|
||||
name: usize,
|
||||
lba: usize,
|
||||
size: usize,
|
||||
ex_size: usize,
|
||||
}
|
||||
|
||||
const DEFAULT_CONTENT_ALIGNMENT:ContentDumpAlignment = ContentDumpAlignment{name: 24, lba: 8, size: 8, ex_size: 8};
|
||||
|
||||
pub fn process(config: config_reader::Configuration, calculate_lba: CalculateLBAFunction) -> Result<CDDesc, Error> {
|
||||
let mut cd_desc = parse_configuration(config)?;
|
||||
|
||||
|
@ -27,7 +36,8 @@ pub fn dump_content(cd_desc: &CDDesc, mut out: Output) -> Result<(), Error> {
|
|||
}
|
||||
|
||||
fn dump_dir(dir: &Directory, out: &mut Output, indent: usize) -> Result<(), Error> {
|
||||
const INDENT_STEP:usize = 4;
|
||||
const ARROW:&'static str = "|==>";
|
||||
const INDENT_STEP:usize = 4;
|
||||
|
||||
for file in dir.file_iter() {
|
||||
let file = file.borrow();
|
||||
|
@ -36,7 +46,8 @@ pub fn dump_content(cd_desc: &CDDesc, mut out: Output) -> Result<(), Error> {
|
|||
let file_size = file.properties.get_real_size();
|
||||
let file_ex_size = file.get_extended_size();
|
||||
|
||||
writeln!(out, "{:indent$}File: {} @{} - {}/{}", " ", file_name, file_lba, file_size, file_ex_size, indent=indent)?;
|
||||
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)?;
|
||||
}
|
||||
|
||||
for dir in dir.dir_iter() {
|
||||
|
@ -44,7 +55,8 @@ pub fn dump_content(cd_desc: &CDDesc, mut out: Output) -> Result<(), Error> {
|
|||
let dir_name = dir.name.as_str().unwrap_or("<No name>");
|
||||
let dir_lba = dir.get_track_rel_lba();
|
||||
|
||||
writeln!(out, "{:indent$}Dir: {} @{}", " ", dir_name, dir_lba, indent=indent)?;
|
||||
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)?;
|
||||
dump_dir(&dir, out, indent + INDENT_STEP)?;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue