1#![deny(missing_copy_implementations)]
7#![deny(missing_debug_implementations)]
8#![deny(missing_docs)]
9#![deny(unreachable_pub)]
10#![deny(unused_crate_dependencies)]
11#![deny(unused_extern_crates)]
12#![deny(unused_lifetimes)]
13#![deny(unused_qualifications)]
14#![deny(clippy::all)]
15#![deny(clippy::pedantic)]
16#![deny(clippy::cargo_common_metadata)]
17#![deny(clippy::multiple_crate_versions)]
18#![deny(clippy::rest_pat_in_fully_bound_structs)]
19#![deny(clippy::use_debug)]
20#![allow(clippy::module_name_repetitions)]
21#![allow(clippy::too_many_lines)]
22#![deny(rustdoc::broken_intra_doc_links)]
23#![deny(rustdoc::private_intra_doc_links)]
24#![deny(rustdoc::invalid_codeblock_attributes)]
25#![deny(rustdoc::invalid_rust_codeblocks)]
26#![deny(rustdoc::bare_urls)]
27
28use derivable::Derivable;
29
30use proc_macro::TokenStream;
31
32mod derivable;
33mod derive;
34mod ident;
35mod ident_collector;
36mod input;
37mod map;
38mod opts;
39mod predicates;
40mod result;
41mod syn_ext;
42
43#[proc_macro_derive(FuncMap, attributes(funcmap))]
45pub fn derive_func_map(item: TokenStream) -> TokenStream {
46 derive::derive(item.into(), Derivable::Standard).into()
47}
48
49#[proc_macro_derive(TryFuncMap, attributes(funcmap))]
51pub fn derive_try_func_map(item: TokenStream) -> TokenStream {
52 derive::derive(item.into(), Derivable::Fallible).into()
53}