1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
mod env;
mod field;
mod utils;
use proc_macro::TokenStream;
use syn::{parse_macro_input, DeriveInput};
use darling::FromDeriveInput;
use crate::env::Env;
#[proc_macro_derive(FromEnv, attributes(env))]
pub fn derive(input: TokenStream) -> TokenStream {
Env::from_derive_input(&parse_macro_input!(input as DeriveInput))
.unwrap()
.expand()
.unwrap_or_else(|e| e.to_compile_error())
.into()
}