save game

This commit is contained in:
Gerrit Viljoen 2020-05-17 11:53:38 +02:00
parent 967acfed9f
commit 757531723a

View File

@ -236,28 +236,6 @@ impl AsciiTable {
self.truncate_widths(result) self.truncate_widths(result)
} }
fn count_characters(&self, cell: &str) -> usize {
// let mut count = 0;
// let mut block = false;
// let mut iter = cell.chars().peekable();
// while let Some(ch) = iter.next() {
// if block {
// if ch != '\u{1b}' && ch != '[' && ch != ';' && ch != 'm' && !('0'..'9').contains(&ch) {
// block = false;
// count += 1;
// }
// } else {
// if ch == '\u{1b}' && Some(&'[') == iter.peek() {
// block = true;
// } else {
// count += 1;
// }
// }
// }
// count
cell.chars().count()
}
fn truncate_widths(&self, mut widths: Vec<usize>) -> Vec<usize> { fn truncate_widths(&self, mut widths: Vec<usize>) -> Vec<usize> {
let max_width = self.max_width; let max_width = self.max_width;
let table_padding = Self::smallest_width(widths.len()); let table_padding = Self::smallest_width(widths.len());
@ -330,22 +308,22 @@ impl AsciiTable {
result.pop(); result.pop();
} }
if result.pop().is_some() { if result.pop().is_some() {
result.push('+') result.push_visible('+')
} }
result result
} else { } else {
let mut result = text.clone(); let mut result = text.clone();
match align { match align {
Align::Left => while result.char_len() < len { Align::Left => while result.char_len() < len {
result.push(pad) result.push_visible(pad)
} }
Align::Right => while result.char_len() < len { Align::Right => while result.char_len() < len {
result.insert(0, pad) result.lpush_visible(pad)
} }
Align::Center => while result.char_len() < len { Align::Center => while result.char_len() < len {
result.push(pad); result.push_visible(pad);
if result.char_len() < len { if result.char_len() < len {
result.insert(0, pad) result.lpush_visible(pad)
} }
} }
} }
@ -368,6 +346,24 @@ impl SmartString {
fn from<T>(string: T) -> Self fn from<T>(string: T) -> Self
where T: Display { where T: Display {
// TODO: // TODO:
// let mut count = 0;
// let mut block = false;
// let mut iter = cell.chars().peekable();
// while let Some(ch) = iter.next() {
// if block {
// if ch != '\u{1b}' && ch != '[' && ch != ';' && ch != 'm' && !('0'..'9').contains(&ch) {
// block = false;
// count += 1;
// }
// } else {
// if ch == '\u{1b}' && Some(&'[') == iter.peek() {
// block = true;
// } else {
// count += 1;
// }
// }
// }
// count
Self { fragments: vec![(true, string.to_string())] } Self { fragments: vec![(true, string.to_string())] }
} }
@ -391,11 +387,19 @@ impl SmartString {
.and_then(|(_, string)| string.pop()) .and_then(|(_, string)| string.pop())
} }
fn push(&mut self, ch: char) { fn push_visible(&mut self, ch: char) {
todo!() let last_fragment = self.fragments.iter_mut()
.filter(|(visible, _)| *visible)
.map(|(_, string)| string)
.last();
if let Some(fragment) = last_fragment {
fragment.push(ch);
} else {
self.fragments.push((true, ch.to_string()));
}
} }
fn insert(&mut self, index: usize, ch: char) { fn lpush_visible(&mut self, ch: char) {
todo!() todo!()
} }
} }