pub trait Sources {
// Required method
fn get(&self, source: &str) -> Result<Option<PathBuf>, String>;
// Provided method
fn get_or_append(
&self,
source: &str,
missing: &mut Vec<String>,
) -> Result<Option<PathBuf>, String> { ... }
}