From 79b44b55752fdd291007232a1de61c231bcac3c3 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sun, 21 Oct 2018 10:16:18 +0800 Subject: [PATCH 1/2] add type parameter to Cell::new()/Cell::new_align() --- src/cell.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cell.rs b/src/cell.rs index bc25cec0d3..42e7f1574e 100644 --- a/src/cell.rs +++ b/src/cell.rs @@ -22,10 +22,10 @@ pub struct Cell { } impl Cell { - /// Create a new `Cell` initialized with content from `string`. + /// Create a new `Cell` initialized with content from `string` which implemented `ToString`. /// Text alignment in cell is configurable with the `align` argument - pub fn new_align(string: &str, align: Alignment) -> Cell { - let content: Vec = string.lines().map(|x| x.to_string()).collect(); + pub fn new_align(string: &T, align: Alignment) -> Cell { + let content: Vec = string.to_string().lines().map(|x| x.to_string()).collect(); let mut width = 0; for cont in &content { let l = display_width(&cont[..]); @@ -42,9 +42,9 @@ impl Cell { } } - /// Create a new `Cell` initialized with content from `string`. + /// Create a new `Cell` initialized with content from `string` which implemented `ToString`. /// By default, content is align to `LEFT` - pub fn new(string: &str) -> Cell { + pub fn new(string: &T) -> Cell { Cell::new_align(string, Alignment::LEFT) } From 74c2bd2822e1eeb06b37c1b321293af5a8f74b11 Mon Sep 17 00:00:00 2001 From: iosmanthus Date: Sun, 21 Oct 2018 10:16:18 +0800 Subject: [PATCH 2/2] Add trait bound ToString to Cell::new()/Cell::new_align() --- src/cell.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/cell.rs b/src/cell.rs index bc25cec0d3..42e7f1574e 100644 --- a/src/cell.rs +++ b/src/cell.rs @@ -22,10 +22,10 @@ pub struct Cell { } impl Cell { - /// Create a new `Cell` initialized with content from `string`. + /// Create a new `Cell` initialized with content from `string` which implemented `ToString`. /// Text alignment in cell is configurable with the `align` argument - pub fn new_align(string: &str, align: Alignment) -> Cell { - let content: Vec = string.lines().map(|x| x.to_string()).collect(); + pub fn new_align(string: &T, align: Alignment) -> Cell { + let content: Vec = string.to_string().lines().map(|x| x.to_string()).collect(); let mut width = 0; for cont in &content { let l = display_width(&cont[..]); @@ -42,9 +42,9 @@ impl Cell { } } - /// Create a new `Cell` initialized with content from `string`. + /// Create a new `Cell` initialized with content from `string` which implemented `ToString`. /// By default, content is align to `LEFT` - pub fn new(string: &str) -> Cell { + pub fn new(string: &T) -> Cell { Cell::new_align(string, Alignment::LEFT) }