extern crate proc_macro;
extern crate quote;
extern crate syn;
#[allow(unused)]
pub(crate) mod attrs {
pub use self::{display_attrs::*, nested::*, root::*};
mod display_attrs;
mod nested;
mod root;
}
pub(crate) mod impls {
#[doc(inline)]
pub use self::wrapper::*;
mod wrapper;
}
use proc_macro::TokenStream;
use syn::{DeriveInput, parse_macro_input};
#[proc_macro_derive(Spatial, attributes(wrap))]
pub fn spatial(input: TokenStream) -> TokenStream {
let ast = parse_macro_input!(input as DeriveInput);
let res = impls::impl_wrapper(&ast);
res.into()
}