diff --git a/src/modules/character.rs b/src/modules/character.rs index 98b9b254..9ebc8fa6 100644 --- a/src/modules/character.rs +++ b/src/modules/character.rs @@ -17,17 +17,13 @@ pub fn segment(args: &ArgMatches) -> Segment { let segment = Segment::new("char"); - let color = if args.value_of("status_code").unwrap() == "0" { + if args.value_of("status_code").unwrap() == "0" { segment.set_style(COLOR_SUCCESS); } else { - COLOR_FAILURE + segment.set_style(COLOR_FAILURE); }; - Segment { - value: String::from(PROMPT_CHAR), - style: Style::from(color), - ..Default::default() - } + segment } #[cfg(test)] diff --git a/src/segment.rs b/src/segment.rs index df301762..9fe50e90 100644 --- a/src/segment.rs +++ b/src/segment.rs @@ -9,7 +9,10 @@ pub struct Segment { } impl Segment { - pub fn new(name: S) -> Segment where S: Into { + pub fn new(name: T) -> Segment + where + T: Into, + { let default_prefix = Some(Box::new(Segment { name: Some(format!("{} {}", name.into(), "prefix")), style: Style::default(), @@ -35,8 +38,11 @@ impl Segment { } } - pub fn set_style<'a>(&'a mut self, style: Style) -> &'a mut Segment { - self.style = style; + pub fn set_style<'a, T>(&'a mut self, style: T) -> &'a mut Segment + where + T: Into