postgres_derive/
lib.rs

1//! An internal crate for `postgres-types`.
2
3#![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}