Skip to main content

khal_derive/
lib.rs

1//! Derive proc-macros for `khal`.
2
3extern crate proc_macro;
4
5use proc_macro::TokenStream;
6
7mod shader;
8mod shader_args;
9mod spirv_bindgen;
10
11#[proc_macro_derive(Shader, attributes(shader, entry_point))]
12pub fn derive_shader(item: TokenStream) -> TokenStream {
13    shader::derive_shader(item)
14}
15
16#[proc_macro_derive(
17    ShaderArgs,
18    attributes(storage, uniform, push_constant, workgroup_size)
19)]
20pub fn derive_shader_args(item: TokenStream) -> TokenStream {
21    shader_args::derive_shader_args(item)
22}
23
24#[proc_macro_attribute]
25pub fn spirv_bindgen(attr: TokenStream, item: TokenStream) -> TokenStream {
26    spirv_bindgen::spirv_bindgen(attr, item)
27}