wgsl_inline/
lib.rs

1#![allow(clippy::needless_doctest_main)]
2#![doc = include_str!("../README.md")]
3
4mod result;
5mod source;
6
7use quote::ToTokens;
8use source::Sourcecode;
9
10#[proc_macro]
11pub fn wgsl(shader: proc_macro::TokenStream) -> proc_macro::TokenStream {
12    let mut sourcecode = Sourcecode::new();
13    sourcecode.append_tokens(shader);
14
15    let mut result = sourcecode.complete();
16
17    result.validate();
18
19    let mut tokens = proc_macro2::TokenStream::new();
20    for item in result.to_items() {
21        item.to_tokens(&mut tokens);
22    }
23    tokens.into()
24}