Skip to main content

worktable_codegen/
lib.rs

1mod mem_stat;
2mod name_generator;
3mod persist_index;
4mod persist_table;
5mod worktable;
6
7use proc_macro::TokenStream;
8// TODO: Refactor this codegen stuff because it's now too strange.
9
10#[proc_macro]
11pub fn worktable(input: TokenStream) -> TokenStream {
12    worktable::expand(input.into())
13        .unwrap_or_else(|e| e.to_compile_error())
14        .into()
15}
16
17#[proc_macro_derive(PersistIndex)]
18pub fn persist_index(input: TokenStream) -> TokenStream {
19    persist_index::expand(input.into())
20        .unwrap_or_else(|e| e.to_compile_error())
21        .into()
22}
23
24#[proc_macro_derive(PersistTable, attributes(table))]
25pub fn persist_table(input: TokenStream) -> TokenStream {
26    persist_table::expand(input.into())
27        .unwrap_or_else(|e| e.to_compile_error())
28        .into()
29}
30
31#[proc_macro_derive(MemStat)]
32pub fn mem_stat(input: TokenStream) -> TokenStream {
33    mem_stat::expand(input.into())
34        .unwrap_or_else(|e| e.to_compile_error())
35        .into()
36}