From d82ebc4457adefcd9ad45c4d3d6d611c28d80cc3 Mon Sep 17 00:00:00 2001 From: Matan Kushner Date: Fri, 12 Apr 2019 17:49:20 -0400 Subject: Add builder pattern for segment --- src/modules/character.rs | 4 +++- src/modules/mod.rs | 27 +-------------------------- src/modules/nodejs.rs | 2 +- 3 files changed, 5 insertions(+), 28 deletions(-) (limited to 'src/modules') diff --git a/src/modules/character.rs b/src/modules/character.rs index 4c83c5096..98b9b254e 100644 --- a/src/modules/character.rs +++ b/src/modules/character.rs @@ -15,8 +15,10 @@ pub fn segment(args: &ArgMatches) -> Segment { const COLOR_SUCCESS: Color = Color::Green; const COLOR_FAILURE: Color = Color::Red; + let segment = Segment::new("char"); + let color = if args.value_of("status_code").unwrap() == "0" { - COLOR_SUCCESS + segment.set_style(COLOR_SUCCESS); } else { COLOR_FAILURE }; diff --git a/src/modules/mod.rs b/src/modules/mod.rs index 5fa37593e..42620db9f 100644 --- a/src/modules/mod.rs +++ b/src/modules/mod.rs @@ -3,37 +3,12 @@ mod directory; mod line_break; mod nodejs; -use ansi_term::Style; +use crate::segment::Segment; use clap::ArgMatches; // pub static current_dir: PathBuf = env::current_dir().expect("Unable to identify current directory"); // TODO: Currently gets the physical directory. Get the logical directory. -pub struct Segment { - pub style: Style, - pub value: String, - pub prefix: Option>, - pub suffix: Option>, -} - -impl Default for Segment { - fn default() -> Segment { - let default_suffix = Some(Box::new(Segment { - style: Style::default(), - value: String::from(" "), - prefix: None, - suffix: None, - })); - - Segment { - style: Style::default(), - value: String::from(""), - prefix: None, - suffix: default_suffix, - } - } -} - pub fn handle(module: &str, args: &ArgMatches) -> Segment { match module { "dir" | "directory" => directory::segment(&args), diff --git a/src/modules/nodejs.rs b/src/modules/nodejs.rs index 87a1e4a25..a0b4162c0 100644 --- a/src/modules/nodejs.rs +++ b/src/modules/nodejs.rs @@ -6,7 +6,7 @@ use std::fs::{self, DirEntry}; use std::process::Command; /// Creates a segment with the current Node.js version -/// +/// /// Will display the Node.js version if any of the following criteria are met: /// - Current directory contains a `.js` file /// - Current directory contains a `node_modules` directory -- cgit v1.2.3