1use proc_macro::TokenStream;
2
3#[cfg(feature = "wasm")]
4mod wasm;
5
6#[cfg(feature = "py")]
7mod py;
8
9#[cfg(feature = "py")]
11#[proc_macro_attribute]
12pub fn popo(attr: TokenStream, input: TokenStream) -> TokenStream {
13 crate::py::impl_popo(attr, input)
14}
15
16#[cfg(feature = "py")]
18#[proc_macro_derive(Popo)]
19pub fn popo_macro_derive(input: TokenStream) -> TokenStream {
20 let ast = syn::parse(input).unwrap();
21 crate::py::impl_popo_macro_derive(&ast)
22}
23
24#[cfg(feature = "wasm")]
26#[proc_macro_attribute]
27pub fn pojso(attr: TokenStream, input: TokenStream) -> TokenStream {
28 crate::wasm::impl_pojso(attr, input)
29}
30
31#[cfg(feature = "wasm")]
33#[proc_macro_derive(Pojso)]
34pub fn pojso_macro_derive(input: TokenStream) -> TokenStream {
35 let ast = syn::parse(input).unwrap();
36 crate::wasm::impl_pojso_macro_derive(&ast)
37}