postgres_derive/
lib.rs
1#![recursion_limit = "256"]
4extern crate proc_macro;
5
6use proc_macro::TokenStream;
7use syn::parse_macro_input;
8
9mod accepts;
10mod case;
11mod composites;
12mod enums;
13mod fromsql;
14mod overrides;
15mod tosql;
16
17#[proc_macro_derive(ToSql, attributes(postgres))]
18pub fn derive_tosql(input: TokenStream) -> TokenStream {
19 let input = parse_macro_input!(input);
20
21 tosql::expand_derive_tosql(input)
22 .unwrap_or_else(|e| e.to_compile_error())
23 .into()
24}
25
26#[proc_macro_derive(FromSql, attributes(postgres))]
27pub fn derive_fromsql(input: TokenStream) -> TokenStream {
28 let input = parse_macro_input!(input);
29
30 fromsql::expand_derive_fromsql(input)
31 .unwrap_or_else(|e| e.to_compile_error())
32 .into()
33}