Skip to main content

opengauss_derive/
lib.rs

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