#![allow( | |
clippy::blocks_in_if_conditions, | |
clippy::cast_lossless, | |
clippy::cast_possible_truncation, | |
clippy::manual_find, | |
clippy::manual_let_else, | |
clippy::manual_map, | |
clippy::map_unwrap_or, | |
clippy::needless_pass_by_value, | |
clippy::option_if_let_else, | |
clippy::range_plus_one, | |
clippy::single_match_else, | |
clippy::too_many_lines, | |
clippy::wrong_self_convention | |
)] | |
extern crate proc_macro; | |
mod ast; | |
mod attr; | |
mod expand; | |
mod fmt; | |
mod generics; | |
mod prop; | |
mod valid; | |
use proc_macro::TokenStream; | |
use syn::{parse_macro_input, DeriveInput}; | |
#[proc_macro_derive(Error, attributes(backtrace, error, from, source))] | |
pub fn derive_error(input: TokenStream) -> TokenStream { | |
let input = parse_macro_input!(input as DeriveInput); | |
expand::derive(&input) | |
.unwrap_or_else(|err| err.to_compile_error()) | |
.into() | |
} |