pub trait UploadTask: NdnTask {
// Required methods
fn clone_as_upload_task(&self) -> Box<dyn UploadTask>;
fn calc_speed(&self, when: Timestamp) -> u32;
// Provided methods
fn add_task(
&self,
_path: Option<String>,
_sub: Box<dyn UploadTask>,
) -> BuckyResult<()> { ... }
fn sub_task(&self, _path: &str) -> Option<Box<dyn UploadTask>> { ... }
}