rust_gl_proc/
lib.rs

1extern crate proc_macro;
2
3mod attribute;
4mod uniform;
5
6use ::syn::{GenericParam, Generics, TypeParamBound};
7fn add_trait_bounds(mut generics: Generics, params: Vec<TypeParamBound>) -> Generics {
8    for param in &mut generics.params {
9        if let GenericParam::Type(ref mut type_param) = *param {
10            for param in &params{
11                type_param.bounds.push(param.clone());
12            }
13        }
14    }
15    generics
16}
17use ::proc_macro::TokenStream;
18
19///Create a ToUniform implementaion from the given struct.
20#[proc_macro_derive(ToUniform)]
21pub fn gl_to_uniform(input: TokenStream) -> TokenStream {
22    uniform::gl_to_uniform(input)
23}
24///Create a ToAttribute implementaion from the given struct.
25#[proc_macro_derive(ToAttribute)]
26pub fn gl_to_attribute(input: TokenStream) -> TokenStream {
27    attribute::gl_to_attribute(input)
28}