]> git.proxmox.com Git - rustc.git/blob - vendor/darling_macro/src/lib.rs
New upstream version 1.45.0+dfsg1
[rustc.git] / vendor / darling_macro / src / lib.rs
1 extern crate proc_macro;
2 #[macro_use]
3 extern crate syn;
4
5 extern crate darling_core;
6
7 use proc_macro::TokenStream;
8
9 use darling_core::{derive, Error};
10
11 #[proc_macro_derive(FromMeta, attributes(darling))]
12 pub fn derive_from_meta(input: TokenStream) -> TokenStream {
13 derive::from_meta(&parse_macro_input!(input)).into()
14 }
15
16 #[proc_macro_derive(FromMetaItem, attributes(darling))]
17 pub fn derive_from_meta_item(_input: TokenStream) -> TokenStream {
18 Error::custom("darling::FromMetaItem has been replaced by darling::FromMeta")
19 .write_errors()
20 .into()
21 }
22
23 #[proc_macro_derive(FromDeriveInput, attributes(darling))]
24 pub fn derive_from_input(input: TokenStream) -> TokenStream {
25 derive::from_derive_input(&parse_macro_input!(input)).into()
26 }
27
28 #[proc_macro_derive(FromField, attributes(darling))]
29 pub fn derive_field(input: TokenStream) -> TokenStream {
30 derive::from_field(&parse_macro_input!(input)).into()
31 }
32
33 #[proc_macro_derive(FromTypeParam, attributes(darling))]
34 pub fn derive_type_param(input: TokenStream) -> TokenStream {
35 derive::from_type_param(&parse_macro_input!(input)).into()
36 }
37
38 #[proc_macro_derive(FromVariant, attributes(darling))]
39 pub fn derive_variant(input: TokenStream) -> TokenStream {
40 derive::from_variant(&parse_macro_input!(input)).into()
41 }