1use proc_macro::TokenStream;
2
3#[proc_macro_attribute]
4pub fn dunge(attr: TokenStream, item: TokenStream) -> TokenStream {
5 dunge_irgen::shader(attr.into(), item.into()).into()
6}
7
8#[proc_macro]
9pub fn render(code: TokenStream) -> TokenStream {
10 dunge_irgen::make_render(code.into()).into()
11}
12
13#[proc_macro_derive(Bytes)]
14pub fn derive_bytes(item: TokenStream) -> TokenStream {
15 dunge_irgen::derive_bytes(item.into()).into()
16}
17
18#[proc_macro_derive(Value, attributes(position, index))]
19pub fn derive_value(item: TokenStream) -> TokenStream {
20 dunge_irgen::derive_value(item.into()).into()
21}
22
23#[proc_macro_derive(Input)]
24pub fn derive_input(item: TokenStream) -> TokenStream {
25 dunge_irgen::derive_input(item.into()).into()
26}