pub trait Encode {
// Required method
fn as_str(&self) -> &str;
// Provided methods
fn encode(&self) -> Result<String, Box<dyn Error + '_>> { ... }
fn encode_hex(&self, ch: char) -> String { ... }
fn encode_digit(&self, ch: char) -> String { ... }
}