summaryrefslogtreecommitdiffstats
path: root/src/segment.rs
diff options
context:
space:
mode:
authorMatan Kushner <hello@matchai.me>2019-04-12 23:06:48 -0400
committerMatan Kushner <hello@matchai.me>2019-04-12 23:06:48 -0400
commit9d4492c313220ee128a49e01dd3580d22450cd04 (patch)
treeaa5434e10f114c1bde36b3554cace0bde26e3ec0 /src/segment.rs
parentd62bb107f231c3d0ebf47b7c91f26348213d8386 (diff)
Make segments optionals
Diffstat (limited to 'src/segment.rs')
-rw-r--r--src/segment.rs19
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