2个版本
0.1.1 | 2023年3月13日 |
---|---|
0.1.0 | 2023年3月13日 |
#2197 in 过程宏
每月下载量:53
在3个crate中使用(通过bevy_proto_derive)
9KB
65 行
optional-error
此crate提供了一种更简单的方式来创建和管理一个Option<syn::Error>
。
fn parse(input: DeriveInput) -> Result<TokenStream, syn::Error> {
// Create an optional error to contain zero or more errors
let mut errors = OptionalError::default();
if !matches!(input.vis, Visibility::Public(_)) {
// Combine with a new error (or initialize if empty)
errors.combine(syn::Error::new(Span::call_site(), "input must be marked `pub`"));
}
match input.data {
syn::Data::Struct(_) | syn::Data::Enum(_) => { /* ... */ }
syn::Data::Union(_) => {
// Combine some more!
errors.combine(syn::Error::new(Span::call_site(), "unions not supported"));
}
}
// Easy early return with all errors (if any)
errors.try_throw()?;
// ...
}
依赖项
~1.5MB
~35K SLoC