Files
ahash
aho_corasick
ansi_term
anyhow
atty
bech32
bincode
bit_set
bit_vec
bitcoin
blockdata
consensus
network
policy
util
bitcoin_hashes
bitflags
cfg_if
clap
app
args
completions
convert_case
core2
crunchy
cryptoxide
blake2
chacha
sha2
enum_primitive
fancy_regex
hashbrown
hex
hex_literal
itoa
libc
unix
libloading
memchr
memchr
memmem
num
num_bigint
bigint
biguint
num_complex
num_integer
num_iter
num_rational
num_traits
ordered_float
paste
proc_macro2
proc_macro_error
proc_macro_error_attr
qimalloc
quote
regex
regex_syntax
ast
hir
unicode_tables
remain
rust_ssvm
ryu
secp256k1
secp256k1_sys
serde
de
private
ser
serde_derive
serde_json
serde_value
sewup
kv
rdb
runtimes
token
types
sewup_derive
ss_ewasm_api
ssvm_evmc_client
ssvm_evmc_sys
strsim
syn
attr.rsawait.rsbigint.rsbuffer.rscustom_keyword.rscustom_punctuation.rsdata.rsderive.rsdiscouraged.rserror.rsexport.rsexpr.rsext.rsfile.rsgenerics.rsgroup.rsident.rsitem.rslib.rslifetime.rslit.rslookahead.rsmac.rsmacros.rsop.rsparse.rsparse_macro_input.rsparse_quote.rspat.rspath.rsprint.rspunctuated.rsreserved.rssealed.rsspan.rsspanned.rsstmt.rsthread.rstoken.rsty.rsverbatim.rswhitespace.rs
textwrap
thiserror
thiserror_impl
tiny_keccak
toml
unicode_width
unicode_xid
vec_map
>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
#![allow(
clippy::blocks_in_if_conditions,
clippy::cast_possible_truncation,
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
)]
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()
}