0

我正在尝试使用syn::ItemStruct,但它告诉我的编译器:no ItemStruct in the root.

我正在使用syn = "1.0.86",遵循此文档:https://docs.rs/syn/1.0.86/syn/struct.ItemStruct.html

有谁知道如何解决这个问题?

最小的上下文:

fn parse(input: &ParseBuffer) -> syn::Result<Self> {
        let _struct = input.parse::<Struct>()?;

        let mut parsed_fields = Vec::new();

        for field in _struct.span.fields {
            let struct_attribute = StructField::try_from(&field)?;
                                            
            parsed_fields.push(struct_attribute);
        }
        ...
}

谢谢。

4

1 回答 1

2

文档说:

这仅在 crate 功能上受支持full

这意味着您必须启用该功能:在您的Cargo.toml, 替换

syn = "1.0.86"

syn = { version = "1.0.86", features = ["full"] }

否则,在syn没有该类型定义的情况下编译 crate。

于 2022-02-28T00:08:14.637 回答