bevy_mod_ffi_macros 0.1.0

Macros for bevy_mod_ffi
Documentation
use proc_macro::TokenStream;
use quote::quote;

#[proc_macro_attribute]
pub fn main(input: TokenStream, attrs: TokenStream) -> TokenStream {
    let input = proc_macro2::TokenStream::from(input);
    let attrs = proc_macro2::TokenStream::from(attrs);

    quote! {
        #attrs
        #input

        #[unsafe(no_mangle)]
        extern "C" fn bevy_main(world_ptr: *mut bevy_mod_ffi::bevy_mod_ffi_core::world) {
            let mut world = unsafe { bevy_mod_ffi::world::World::from_ptr(world_ptr) };
            main(&mut world)
        }
    }
    .into()
}