pub trait Task2<T1, T2, O>: Debug {
// Required method
fn run<'async_trait>(
self: Box<Self>,
T1: T1,
T2: T2,
) -> Pin<Box<dyn Future<Output = Result<O>> + Send + 'async_trait>>
where Self: 'async_trait;
// Provided methods
fn name(&self) -> String { ... }
fn color(&self) -> Option<Rgba> { ... }
}