remdb_macros/
lib.rs

1mod codegen;
2mod ddl_parser;
3
4#[proc_macro]
5pub fn define_schema(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
6    let input = syn::parse_macro_input!(input as syn::LitStr);
7    let schema = input.value();
8    
9    match ddl_parser::parse_ddl(&schema) {
10        Ok(table_defs) => {
11            let output = codegen::generate_code(table_defs);
12            output.into()
13        },
14        Err(e) => {
15            panic!("Failed to parse DDL: {}", e);
16        }
17    }
18}
19
20#[proc_macro]
21pub fn table(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
22    // 简化实现,实际项目中应该根据需求实现完整功能
23    input
24}
25
26#[proc_macro]
27pub fn database(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
28    // 简化实现,实际项目中应该根据需求实现完整功能
29    input
30}