Skip to content

Commit 4b4511a

Browse files
committed
Fold sizes into toc command
This seems nice because they do *almost* the same thing? And it will be more obvious if these two chunks of code get out of sync...
1 parent 1576429 commit 4b4511a

File tree

2 files changed

+36
-39
lines changed

2 files changed

+36
-39
lines changed

flatgfa/src/cli/cmds.rs

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,40 @@ use std::io::Write;
1414
/// print the FlatGFA table of contents
1515
#[derive(FromArgs, PartialEq, Debug)]
1616
#[argh(subcommand, name = "toc")]
17-
pub struct Toc {}
18-
19-
pub fn toc(gfa: &flatgfa::FlatGFA) {
20-
eprintln!("header: {}", gfa.header.len());
21-
eprintln!("segs: {}", gfa.segs.len());
22-
eprintln!("paths: {}", gfa.paths.len());
23-
eprintln!("links: {}", gfa.links.len());
24-
eprintln!("steps: {}", gfa.steps.len());
25-
eprintln!("seq_data: {}", gfa.seq_data.len());
26-
eprintln!("overlaps: {}", gfa.overlaps.len());
27-
eprintln!("alignment: {}", gfa.alignment.len());
28-
eprintln!("name_data: {}", gfa.name_data.len());
29-
eprintln!("optional_data: {}", gfa.optional_data.len());
30-
eprintln!("line_order: {}", gfa.line_order.len());
17+
pub struct Toc {
18+
/// show sizes in bytes instead of element counts
19+
#[argh(switch, short = 'b')]
20+
bytes: bool,
21+
}
22+
23+
pub fn toc(gfa: &flatgfa::FlatGFA, args: Toc) {
24+
if args.bytes {
25+
// Show sizes in bytes.
26+
println!("header: {}", gfa.header.size());
27+
println!("segs: {}", gfa.segs.size());
28+
println!("paths: {}", gfa.paths.size());
29+
println!("links: {}", gfa.links.size());
30+
println!("steps: {}", gfa.steps.size());
31+
println!("seq_data: {}", gfa.seq_data.size());
32+
println!("overlaps: {}", gfa.overlaps.size());
33+
println!("alignment: {}", gfa.alignment.size());
34+
println!("name_data: {}", gfa.name_data.size());
35+
println!("optional_data: {}", gfa.optional_data.size());
36+
println!("line_order: {}", gfa.line_order.size());
37+
} else {
38+
// Show element counts (which is what we record physically in the TOC).
39+
println!("header: {}", gfa.header.len());
40+
println!("segs: {}", gfa.segs.len());
41+
println!("paths: {}", gfa.paths.len());
42+
println!("links: {}", gfa.links.len());
43+
println!("steps: {}", gfa.steps.len());
44+
println!("seq_data: {}", gfa.seq_data.len());
45+
println!("overlaps: {}", gfa.overlaps.len());
46+
println!("alignment: {}", gfa.alignment.len());
47+
println!("name_data: {}", gfa.name_data.len());
48+
println!("optional_data: {}", gfa.optional_data.len());
49+
println!("line_order: {}", gfa.line_order.len());
50+
}
3151
}
3252

3353
/// list the paths
@@ -379,22 +399,3 @@ pub fn seq_export(args: SeqExport) {
379399
let view = store.as_ref();
380400
packedseq::export(view, &args.output);
381401
}
382-
383-
/// get the sizes of GFA components, in bytes
384-
#[derive(FromArgs, PartialEq, Debug)]
385-
#[argh(subcommand, name = "size")]
386-
pub struct SizeStats {}
387-
388-
pub fn size_stats(gfa: &flatgfa::FlatGFA) {
389-
println!("header: {}", gfa.header.size());
390-
println!("segs: {}", gfa.segs.size());
391-
println!("paths: {}", gfa.paths.size());
392-
println!("links: {}", gfa.links.size());
393-
println!("steps: {}", gfa.steps.size());
394-
println!("seq_data: {}", gfa.seq_data.size());
395-
println!("overlaps: {}", gfa.overlaps.size());
396-
println!("alignment: {}", gfa.alignment.size());
397-
println!("name_data: {}", gfa.name_data.size());
398-
println!("optional_data: {}", gfa.optional_data.size());
399-
println!("line_order: {}", gfa.line_order.size());
400-
}

flatgfa/src/cli/main.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ enum Command {
4646
BedIntersect(cmds::BEDIntersect),
4747
SeqExport(cmds::SeqExport),
4848
SeqImport(cmds::SeqImport),
49-
SizeStats(cmds::SizeStats),
5049
}
5150

5251
fn main() -> Result<(), &'static str> {
@@ -112,11 +111,8 @@ fn main() -> Result<(), &'static str> {
112111
};
113112

114113
match args.command {
115-
Some(Command::SizeStats(_)) => {
116-
cmds::size_stats(&gfa);
117-
}
118-
Some(Command::Toc(_)) => {
119-
cmds::toc(&gfa);
114+
Some(Command::Toc(sub_args)) => {
115+
cmds::toc(&gfa, sub_args);
120116
}
121117
Some(Command::Paths(_)) => {
122118
cmds::paths(&gfa);

0 commit comments

Comments
 (0)