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