2019-04-04 00:14:26 +00:00
|
|
|
use crate::modules;
|
|
|
|
use crate::Segment;
|
2019-04-04 02:57:50 +00:00
|
|
|
use clap::ArgMatches;
|
2019-04-04 00:14:26 +00:00
|
|
|
|
2019-04-04 02:57:50 +00:00
|
|
|
pub fn prompt(args: ArgMatches) {
|
2019-04-04 00:14:26 +00:00
|
|
|
let default_prompt = vec!["char"];
|
|
|
|
|
|
|
|
for module in default_prompt {
|
2019-04-04 02:57:50 +00:00
|
|
|
let segment = modules::handle(module, &args);
|
2019-04-04 00:14:26 +00:00
|
|
|
print_segment(segment);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
fn print_segment(segment: Segment) {
|
|
|
|
let Segment {
|
|
|
|
prefix,
|
|
|
|
value,
|
|
|
|
style,
|
|
|
|
suffix,
|
|
|
|
} = segment;
|
|
|
|
|
|
|
|
if let Some(prefix) = prefix {
|
|
|
|
print_segment(*prefix);
|
|
|
|
}
|
|
|
|
|
|
|
|
print!("{}", style.paint(value));
|
|
|
|
|
|
|
|
if let Some(suffix) = suffix {
|
|
|
|
print_segment(*suffix);
|
|
|
|
}
|
|
|
|
}
|