【发布时间】:2023-01-03 05:26:41
【问题描述】:
有与(可能)rust 宏相关的问题,或者其他一些实现它的聪明方法。
- 以下代码来自第三方,无法修改
pub struct Message0; pub struct Message1; pub struct Message { pub payload: Option<Payload>, } pub enum Payload { PayloadMessage0(Message0), PayloadMessage1(Message1), } pub fn third_party_send(msg: Message) { // ... }- 希望以某种方式实现此功能(或不需要为每个 Message0 和 Message1 类型实现单独功能的其他变体)
pub fn send<T>(specific_msg: T) { third_party_send(Message { payload: Some(Payload::PayloadMessage???(specific_msg)), }); }我是生锈的新手,仍然对宏和泛型感到困惑....
【问题讨论】:
-
是的,当然 :) 谢谢!
标签: rust