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 input
24}
25
26#[proc_macro]
27pub fn database(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
28 input
30}