summaryrefslogtreecommitdiffstats
path: root/src/segment.rs
diff options
context:
space:
mode:
authorMatan Kushner <hello@matchai.me>2019-04-12 19:11:40 -0400
committerMatan Kushner <hello@matchai.me>2019-04-12 19:11:40 -0400
commita0e4172602f0b6a666bca7d8568a4f9a181d5438 (patch)
treea414c6a6162770dbd2dc3fd090b33ff25cf6b349 /src/segment.rs
parentfec5c4db4ebd35fa004da524df252f13cb86094e (diff)
Use copy to return segment
Diffstat (limited to 'src/segment.rs')
-rw-r--r--src/segment.rs13
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,