diff options
author | Matan Kushner <hello@matchai.me> | 2019-04-12 23:06:48 -0400 |
---|---|---|
committer | Matan Kushner <hello@matchai.me> | 2019-04-12 23:06:48 -0400 |
commit | 9d4492c313220ee128a49e01dd3580d22450cd04 (patch) | |
tree | aa5434e10f114c1bde36b3554cace0bde26e3ec0 /src/segment.rs | |
parent | d62bb107f231c3d0ebf47b7c91f26348213d8386 (diff) |
Make segments optionals
Diffstat (limited to 'src/segment.rs')
-rw-r--r-- | src/segment.rs | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/segment.rs b/src/segment.rs index 1e42deb5f..3829c1593 100644 --- a/src/segment.rs +++ b/src/segment.rs @@ -56,13 +56,13 @@ impl Segment { self } - pub fn set_prefix(&mut self, prefix: Segment) -> &mut Segment { - self.prefix = Some(Box::new(prefix)); + pub fn set_prefix(&mut self, prefix: OptionalSegment) -> &mut Segment { + self.prefix = prefix; self } - pub fn set_suffix(&mut self, suffix: Segment) -> &mut Segment { - self.suffix = Some(Box::new(suffix)); + pub fn set_suffix(&mut self, suffix: OptionalSegment) -> &mut Segment { + self.suffix = suffix; self } @@ -70,7 +70,7 @@ impl Segment { /// /// Will recursively also format the prefix and suffix of the segment being /// stringified. - pub fn output<'a>(&'a self) -> String { + pub fn output(&self, index: usize) -> String { let Segment { name: _name, prefix, @@ -81,14 +81,17 @@ impl Segment { let mut segment_string = String::new(); - if let Some(prefix) = prefix { - segment_string += &prefix.output() + // Skip the prefix for the first segment + if index != 0 { + if let Some(prefix) = prefix { + segment_string += &prefix.output(index) + } } segment_string += &style.paint(value).to_string(); if let Some(suffix) = suffix { - segment_string += &suffix.output(); + segment_string += &suffix.output(index); } segment_string |