| #![allow(clippy::block_in_if_condition_stmt, clippy::range_plus_one)] | |
| extern crate proc_macro; | |
| mod ast; | |
| mod attr; | |
| mod expand; | |
| mod fmt; | |
| 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() | |
| } |