namewise_derive/
lib.rs

1mod derive_from;
2mod derive_into;
3mod derive_try_from;
4
5use proc_macro::TokenStream;
6
7/// Derive [From] between two structs/enums with similarly-named fields
8#[proc_macro_derive(From, attributes(namewise_from))]
9pub fn derive_namewise_from(ts: TokenStream) -> TokenStream {
10    derive_from::derive_namewise_from(ts)
11}
12
13/// Derive [TryFrom] between two structs/enums with similarly-named fields
14#[proc_macro_derive(TryFrom, attributes(namewise_try_from))]
15pub fn derive_namewise_try_from(ts: TokenStream) -> TokenStream {
16    derive_try_from::derive_namewise_try_from(ts)
17}
18
19/// Derive [Into] between two structs/enums with similarly-named fields
20#[proc_macro_derive(Into, attributes(namewise_into))]
21pub fn derive_namewise_into(ts: TokenStream) -> TokenStream {
22    derive_into::derive_namewise_into(ts)
23}