Skip to main content

worktable_codegen/
lib.rs

1mod common;
2mod generators;
3mod mem_stat;
4mod migration_engine;
5mod persist_index;
6mod persist_table;
7#[cfg(feature = "s3-support")]
8mod s3_persistence;
9mod worktable;
10mod worktable_version;
11
12use proc_macro::TokenStream;
13// TODO: Refactor this codegen stuff because it's now too strange.
14
15#[proc_macro]
16pub fn worktable(input: TokenStream) -> TokenStream {
17    worktable::expand(input.into())
18        .unwrap_or_else(|e| e.to_compile_error())
19        .into()
20}
21
22#[cfg(feature = "s3-support")]
23#[proc_macro]
24pub fn s3_sync_persistence(input: TokenStream) -> TokenStream {
25    s3_persistence::expand(input.into())
26        .unwrap_or_else(|e| e.to_compile_error())
27        .into()
28}
29
30#[proc_macro_derive(PersistIndex, attributes(index))]
31pub fn persist_index(input: TokenStream) -> TokenStream {
32    persist_index::expand(input.into())
33        .unwrap_or_else(|e| e.to_compile_error())
34        .into()
35}
36
37#[proc_macro_derive(PersistTable, attributes(table))]
38pub fn persist_table(input: TokenStream) -> TokenStream {
39    persist_table::expand(input.into())
40        .unwrap_or_else(|e| e.to_compile_error())
41        .into()
42}
43
44#[proc_macro_derive(MemStat)]
45pub fn mem_stat(input: TokenStream) -> TokenStream {
46    mem_stat::expand(input.into())
47        .unwrap_or_else(|e| e.to_compile_error())
48        .into()
49}
50
51#[proc_macro]
52pub fn worktable_version(input: TokenStream) -> TokenStream {
53    worktable_version::expand(input.into())
54        .unwrap_or_else(|e| e.to_compile_error())
55        .into()
56}
57
58#[proc_macro]
59pub fn migration_engine(input: TokenStream) -> TokenStream {
60    migration_engine::expand(input.into())
61        .unwrap_or_else(|e| e.to_compile_error())
62        .into()
63}