21 lines
492 B
Rust
21 lines
492 B
Rust
use proc_macro::TokenStream;
|
|
use quote::quote;
|
|
use syn::{parse_macro_input, DeriveInput};
|
|
|
|
#[proc_macro_derive(Pod)]
|
|
pub fn pod(input: TokenStream) -> TokenStream {
|
|
let DeriveInput { ident, data, .. } = parse_macro_input!(input);
|
|
|
|
match data {
|
|
syn::Data::Struct(_) => {
|
|
quote! {
|
|
unsafe impl bytemuck::Zeroable for #ident {}
|
|
unsafe impl bytemuck::Pod for #ident {}
|
|
}
|
|
}
|
|
|
|
_ => panic!(),
|
|
}
|
|
.into()
|
|
}
|