Skip to main content

micromegas_derive_transit/
lib.rs

1//! derive-transit library
2//! provides procedural macros like #[derive(Reflect)] to allow reflection and
3//! fast serialization
4
5// crate-specific lint exceptions:
6//#![allow()]
7
8mod declare_queue;
9mod derive_reflect;
10use proc_macro::TokenStream;
11
12/// generate reflection code
13///
14/// `#[transit(reference)]` on a field marks it as a reference, for a type that is not
15/// syntactically a pointer but holds a dependency id.
16#[proc_macro_derive(TransitReflect, attributes(transit))]
17pub fn derive_reflect(input: TokenStream) -> TokenStream {
18    derive_reflect::derive_reflect_impl(input)
19}
20
21/// generate heterogenous queue
22#[proc_macro]
23pub fn declare_queue_struct(input: TokenStream) -> TokenStream {
24    declare_queue::declare_queue_impl(input)
25}