pub trait GenericAsyncRunner{
fn return_run_function(&self) -> ?;
}
pub enum AsyncRunError{}
pub struct SpecificAsyncRunner{}
impl SpecificAsyncRunner{
async fn run(&self) -> Result<u32, AsyncRunError> {
todo!()
}
}
impl GenericAsyncRunner for SpecificAsyncRunner {
fn return_run_function(&self) -> ? {
todo!()
}
}
我想在运行时得到一个指向async run
函数的指针.实际上,我要let generic_async_runner = Box<dyn GenericAsyncRunner>
,我要generic_async_runner.return_run_function().await
.我可能会沮丧,但在实践中会有很多不同的SomethingAsyncRunner
,所以沮丧只能试着对所有人都沮丧.
我可以将async fn run() -> Result<u32, AsyncRunError>
重写为返回Future
的go 糖化版本吗?通过这种方式,我可以在上面的代码中输入一个具体的类型?
.