async_trait能否与动态分派一起使用?
创始人
2024-09-21 10:30:45
0

可以使用async_trait的时候,方法参数类型是静态的,因此与动态分派可能会有一些限制。但是你可以使用Box来传递实现了SomeTrait的类型。这使得动态派发更容易,而async_trait仍然可以处理异步性。

下面是代码示例:

use async_trait::async_trait;

trait SomeTrait {
    async fn do_something(&self);
}

struct A;

#[async_trait]
impl SomeTrait for A {
    async fn do_something(&self) {
        println!("A is doing something");
    }
}

struct B;

#[async_trait]
impl SomeTrait for B {
    async fn do_something(&self) {
        println!("B is doing something");
    }
}

#[async_trait]
trait SomeOtherTrait {
    async fn call_do_something(&self, thing: &dyn SomeTrait);
}

struct C;

#[async_trait]
impl SomeOtherTrait for C {
    async fn call_do_something(&self, thing: &dyn SomeTrait) {
        thing.do_something().await;
    }
}

#[tokio::main]
async fn main() {
    let a = A {};
    let b = B {};

    let c = C {};

    c.call_do_something(&a).await;
    c.call_do_something(&b).await;
}

相关内容

热门资讯

aapoker透明挂!微扑克怎... 自定义aapoker透明挂系统规律,只需要输入自己想要的开挂功能,一键便可以生成出微扑克专用辅助器,...
aapoker外挂!wpk有机... aapoker外挂!wpk有机器人吗,微扑克ai机器人打德州,可靠教程(有挂了解)1)微扑克ai机器...
德扑起手牌胜率图!微扑克系统发... 德扑起手牌胜率图!微扑克系统发牌规律,wpk真的太假了,实用技巧(有挂规律)1、构建自己的微扑克辅助...
wepoke辅助挂!wpk真的... wepoke辅助挂!wpk真的有挂么,wepoke软件透明挂可以弄,教你攻略(有挂技巧)是一款可以让...
wepokeai代打的胜率!w... 1、wepokeai代打的胜率!wpk透视辅助器,wepoke有挂网上靠谱,细节揭秘(有挂教程);代...
wepoke辅助有挂!wpk微... wepoke辅助有挂!wpk微扑克俱乐部,微扑克发牌算法,教你攻略(有挂攻略)1)wepoke辅助有...
wepower有外挂!红龙扑克... wepower有外挂!红龙扑克辅助工具,wepokeai代打,2025新版教程(有挂透明)1、wep...
德扑ai助手!wepoke支持... 德扑ai助手!wepoke支持安卓吗,wepoke用模拟器,实用技巧(有挂攻略)德扑ai助手辅助器中...
微扑克有辅助挂!wpk德州职业... 微扑克有辅助挂!wpk德州职业代打,wpk俱乐部盈利模式,科技教程(有挂技巧);人气非常高,ai更新...
aapoker辅助!aapok... aapoker辅助!aapoker辅助工具存在吗,红龙扑克是真正规的,我来教教你(有挂教学)1.aa...