rust syn::Variant是否有指定变体可见性的机制?

cidc1ykv  于 2023-02-08  发布在  其他
关注(0)|答案(1)|浏览(111)

我有一个生成枚举及其变体的过程宏,我想给它添加可配置的可见性,但它看起来像syn::Variant结构没有可见性字段。由于某种原因,它可以解析带有可见性的变体,所以我不确定是否有其他机制可以设置我错过的可见性。
是否有其他方法来设置可见性,或者这是一个bug?

yhxst69z

yhxst69z1#

不幸的是,这是设计好的。
https://doc.rust-lang.org/reference/items/enumerations.html#variant-visibility 说:“枚举变体在语法上允许Visibility注解,但是当枚举被验证时会被拒绝。这允许在不同的上下文中使用统一的语法来解析条目。”
此外,syn在解析enum变体时忽略可见性:https://github.com/dtolnay/syn/blob/bf7774b10555bd24a14008ad0c46d6ebde202a1c/src/data.rs#LL166C28-L166C28

相关问题