pub trait FormatString {
// Required methods
fn is_empty(&self) -> bool;
fn at(&self, index: usize) -> Option<char>;
fn advance_by(&mut self, n: usize);
fn take_literal<'a: 'b, 'b>(&'a mut self, buffer: &'b mut String) -> &'b str;
}