summaryrefslogtreecommitdiffstats
path: root/src/lib.rs
diff options
context:
space:
mode:
authorpierresy <pierre-henri.symoneaux@alcatel-lucent.com>2015-06-10 21:03:50 +0200
committerpierresy <pierre-henri.symoneaux@alcatel-lucent.com>2015-06-10 21:03:50 +0200
commit3fe5c39fe453594900aec4048134f051e0528872 (patch)
tree3630085909e9b51b702c2e6a94bce18bce540523 /src/lib.rs
parent28b071529897370b87b6d63f4bfa46ceaf5a1f4f (diff)
Added capability to insert a row in tables
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 0ed5de2..4a6f4ad 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -80,7 +80,7 @@ impl Table {
pub fn add_row(&mut self, row: Row) -> &mut Row {
self.rows.push(row);
let l = self.rows.len()-1;
- return self.get_mut_row(l).expect("FATAL : Cannot get reference to last inserted row");
+ return &mut self.rows[l];
}
/// Append an empty row in the table. Return a mutable reference to this new row.
@@ -89,6 +89,16 @@ impl Table {
return self.add_row(Row::empty(n));
}
+ /// Insert `row` at the position `index`, and return a mutable reference to this row
+ pub fn insert_row(&mut self, index: usize, row: Row) -> &mut Row {
+ if index < self.rows.len() {
+ self.rows.insert(index, row);
+ return &mut self.rows[index];
+ } else {
+ return self.add_row(row);
+ }
+ }
+
/// Modify a single element in the table
pub fn set_element(&mut self, element: &String, column: usize, row: usize) -> Result<(), &str> {
let rowline = try!(self.get_mut_row(row).ok_or("Cannot find row"));