pub trait Signer {
// Required method
fn sign_with_options(
&self,
message: &dyn AsRef<[u8]>,
options: Option<SigningOptions>,
) -> Result<Signature>;
// Provided method
fn sign(&self, message: &dyn AsRef<[u8]>) -> Result<Signature> { ... }
}