如何解决有没有一种方法可以在宏的doc属性内使用字符串格式?
我正在使用宏来生成一系列枚举变量。我想为每个文档添加一些文档,可以使用#[doc = "..."]
属性来完成。如果有字符串文字,这可以很好地工作,但是每个宏变体都有一些我想放入文档字符串中的其他数据。
在普通代码中,我将使用format!
来生成格式化的字符串。有什么办法可以在宏中执行此操作吗?
这是一个最小的例子。它尝试生成每个变量具有doc属性的三变量枚举。如果将format!
宏替换为字符串文字,则可以正常工作。
macro_rules! fancy_enum {
($($name:ident => ($str:expr,$int:expr)),+) => {
pub enum Fancy {
$(
#[doc = format!("Variant with string {} and value {}",$str,$int)]
$name
),+
}
}
}
fancy_enum!(
A => ("alpha",1),B => ("bravo",2),C => ("charlie",3)
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。