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