lib.rs 817 B

12345678910111213141516171819202122232425262728293031323334
  1. #![allow(
  2. clippy::blocks_in_if_conditions,
  3. clippy::cast_lossless,
  4. clippy::cast_possible_truncation,
  5. clippy::manual_map,
  6. clippy::map_unwrap_or,
  7. clippy::needless_pass_by_value,
  8. clippy::option_if_let_else,
  9. clippy::range_plus_one,
  10. clippy::single_match_else,
  11. clippy::too_many_lines,
  12. clippy::wrong_self_convention
  13. )]
  14. extern crate proc_macro;
  15. mod ast;
  16. mod attr;
  17. mod expand;
  18. mod fmt;
  19. mod generics;
  20. mod prop;
  21. mod valid;
  22. use proc_macro::TokenStream;
  23. use syn::{parse_macro_input, DeriveInput};
  24. #[proc_macro_derive(Error, attributes(backtrace, error, from, source))]
  25. pub fn derive_error(input: TokenStream) -> TokenStream {
  26. let input = parse_macro_input!(input as DeriveInput);
  27. expand::derive(&input)
  28. .unwrap_or_else(|err| err.to_compile_error())
  29. .into()
  30. }