2个版本
0.1.1 | 2021年12月26日 |
---|---|
0.1.0 | 2021年12月26日 |
2185 在 进程宏 中
在 parenthesized_c 中使用
9KB
提供OuterAttribute
的库,实现了syn::parse::Parse
特质。
在撰写本文时,syn
库没有提供解析外部属性(例如,#[repr(C)]
)的方法,除非声明一个结构体并重新实现syn::parse::Parse
特质。与syn::Attribute
不同,根据启用的功能same_layout
或different_layout
,选择的different_layout::OuterAttribute
或same_layout::OuterAttribute
将分别具有syn::parse::Parse
。
示例
extern crate syn;
extern crate outer_attribute;
use outer_attribute::different_layout::OuterAttribute;
fn main() {
assert!(matches!(syn::parse_str::<OuterAttribute>("#[repr(C)]"), Ok(_)));
assert!(matches!(syn::parse_str::<OuterAttribute>("Not an outer attribute"), Err(_)));
}
默认功能是 different_layout
,当存在一些在 syn::Attribute
上有而 OuterAttribute
上没有的功能时,可以考虑选择 same_layout
。
许可证
您可以选择在 Apache License, Version 2.0 或 MIT 许可证 下进行许可。除非您明确声明,否则您根据 Apache-2.0 许可证定义的贡献,有意提交给此crate的任何内容,都应如上所述双重许可,没有任何附加条款或条件。
依赖项
约1.5MB
约35K SLoC