pub trait FetchEngine: Send + Sync {
// Required method
fn fetch(
&mut self,
path: &str,
) -> Result<Box<dyn FetchProcessReader>, FetchStatus>;
// Provided method
fn cancel(&mut self, reader: Box<dyn FetchProcessReader>) { ... }
}