diff options
author | Matan Kushner <hello@matchai.me> | 2019-04-12 19:11:40 -0400 |
---|---|---|
committer | Matan Kushner <hello@matchai.me> | 2019-04-12 19:11:40 -0400 |
commit | a0e4172602f0b6a666bca7d8568a4f9a181d5438 (patch) | |
tree | a414c6a6162770dbd2dc3fd090b33ff25cf6b349 /src/segment.rs | |
parent | fec5c4db4ebd35fa004da524df252f13cb86094e (diff) |
Use copy to return segment
Diffstat (limited to 'src/segment.rs')
-rw-r--r-- | src/segment.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/segment.rs b/src/segment.rs index 9fe50e904..cca71cdd1 100644 --- a/src/segment.rs +++ b/src/segment.rs @@ -1,5 +1,6 @@ use ansi_term::Style; +#[derive(Clone)] pub struct Segment { name: Option<String>, style: Style, @@ -12,6 +13,7 @@ impl Segment { pub fn new<T>(name: T) -> Segment where T: Into<String>, + T: Copy, { let default_prefix = Some(Box::new(Segment { name: Some(format!("{} {}", name.into(), "prefix")), @@ -46,8 +48,11 @@ impl Segment { self } - pub fn set_value<'a>(&'a mut self, value: String) -> &'a mut Segment { - self.value = value; + pub fn set_value<'a, T>(&'a mut self, value: T) -> &'a mut Segment + where + T: Into<String>, + { + self.value = value.into(); self } @@ -61,6 +66,10 @@ impl Segment { self } + /// Create a string with the formatted contents of a segment + /// + /// Will recursively also format the prefix and suffix of the segment being + /// stringified. pub fn output<'a>(&'a self) -> String { let Segment { name: _name, |