hephae_render_derive/
lib.rs

1#![allow(internal_features)]
2#![cfg_attr(any(docsrs, docsrs_dep), feature(rustdoc_internals))]
3#![doc = include_str!("../README.md")]
4#![cfg_attr(doc, deny(missing_docs))]
5
6extern crate proc_macro;
7
8mod vertex_layout;
9
10/// Derives `VertexLayout`. Note that this also requires `NoUninit`, which you can derive with
11/// `hephae-render`'s re-export: `#[bytemuck(crate = "hephae::render::bytemuck")]`.
12#[proc_macro_derive(VertexLayout)]
13pub fn derive_vertex_layout(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
14    vertex_layout::parse(input.into())
15        .unwrap_or_else(|e| e.into_compile_error())
16        .into()
17}