diff options
author | Matan Kushner <hello@matchai.me> | 2019-04-04 20:33:36 -0400 |
---|---|---|
committer | Matan Kushner <hello@matchai.me> | 2019-04-04 20:33:36 -0400 |
commit | 168d568d549cf55848a33921403f5f1be577742e (patch) | |
tree | c9c00921a4ad42cbd3bdf3877088cf587eab3cf0 /src/print.rs | |
parent | 52a529c62736d5186453f095b15b0ce038ec72a7 (diff) |
Add line_sep section
Diffstat (limited to 'src/print.rs')
-rw-r--r-- | src/print.rs | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/print.rs b/src/print.rs index c2951967d..50c691da2 100644 --- a/src/print.rs +++ b/src/print.rs @@ -3,29 +3,33 @@ use crate::modules::Segment; use clap::ArgMatches; pub fn prompt(args: ArgMatches) { - let default_prompt = vec!["dir", "char"]; + let default_prompt = vec!["dir", "line_sep", "char"]; - for module in default_prompt { - let segment = modules::handle(module, &args); - print_segment(segment); - } + default_prompt.into_iter() + .map(|module| modules::handle(module, &args)) + .map(|segment| stringify_segment(segment)) + .for_each(|segment_string| print!("{}", segment_string)); } -pub fn print_segment(segment: Segment) { +pub fn stringify_segment(segment: Segment) -> String { let Segment { prefix, value, style, suffix, - } = segment; + } = segment; + + let mut segment_string = String::new(); if let Some(prefix) = prefix { - print_segment(*prefix); + segment_string += &stringify_segment(*prefix); } - - print!("{}", style.paint(value)); + + segment_string += &style.paint(value).to_string(); if let Some(suffix) = suffix { - print_segment(*suffix); + segment_string += &stringify_segment(*suffix); } + + segment_string } |