我有一个生成枚举及其变体的过程宏,我想给它添加可配置的可见性,但它看起来像syn::Variant结构没有可见性字段。由于某种原因,它可以解析带有可见性的变体,所以我不确定是否有其他机制可以设置我错过的可见性。是否有其他方法来设置可见性,或者这是一个bug?
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
syn
enum
1条答案
按热度按时间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