summaryrefslogtreecommitdiffstats
path: root/src/print.rs
diff options
context:
space:
mode:
authorMatan Kushner <hello@matchai.me>2019-04-04 20:33:36 -0400
committerMatan Kushner <hello@matchai.me>2019-04-04 20:33:36 -0400
commit168d568d549cf55848a33921403f5f1be577742e (patch)
treec9c00921a4ad42cbd3bdf3877088cf587eab3cf0 /src/print.rs
parent52a529c62736d5186453f095b15b0ce038ec72a7 (diff)
Add line_sep section
Diffstat (limited to 'src/print.rs')
-rw-r--r--src/print.rs26
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
}