#attributes #syn #outer #parser

outer_attribute

提供OuterAttribute的库,实现了syn::parse::Parse特质。

2个版本

0.1.1 2021年12月26日
0.1.0 2021年12月26日

2185进程宏


parenthesized_c 中使用

MIT/Apache

9KB

提供OuterAttribute的库,实现了syn::parse::Parse特质。

在撰写本文时,syn库没有提供解析外部属性(例如,#[repr(C)])的方法,除非声明一个结构体并重新实现syn::parse::Parse特质。与syn::Attribute不同,根据启用的功能same_layoutdifferent_layout,选择的different_layout::OuterAttributesame_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.0MIT 许可证 下进行许可。
除非您明确声明,否则您根据 Apache-2.0 许可证定义的贡献,有意提交给此crate的任何内容,都应如上所述双重许可,没有任何附加条款或条件。

依赖项

约1.5MB
约35K SLoC