pub trait IString {
// Required methods
fn push(&mut self, c: char);
fn pop(&mut self);
fn as_str(&self) -> &str;
fn chars(&self) -> Chars<'_>;
fn char_count(&self) -> usize;
fn clear(&mut self);
fn len(&self) -> usize;
fn as_u8_slice(&self) -> &[u8] ⓘ;
fn capacity(&self) -> usize;
fn add_str(&mut self, s: &str);
// Provided methods
fn append_real(&mut self, precision: usize, f: f64) { ... }
fn append_int(&mut self, base: usize, leading_zeros: usize, v: i32) { ... }
}