1use hugsqlx_core::{Context, ContextType};
2use proc_macro::TokenStream;
3
4#[proc_macro_derive(HugSqlx, attributes(queries))]
5pub fn hugsqlx(input_stream: TokenStream) -> TokenStream {
6 let ast = syn::parse(input_stream).unwrap();
7 let ctx = Context::new(if cfg!(feature = "postgres") {
8 ContextType::Postgres
9 } else if cfg!(feature = "sqlite") {
10 ContextType::Sqlite
11 } else if cfg!(feature = "mysql") {
12 ContextType::Mysql
13 } else {
14 ContextType::Default
15 });
16 hugsqlx_core::impl_hug_sqlx(&ast, ctx).into()
17}