mirror of
https://github.com/dtolnay/thiserror.git
synced 2025-04-07 06:47:38 +03:00
19 lines
441 B
Rust
19 lines
441 B
Rust
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, 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()
|
|
}
|