juniper_eager_loading_code_gen/
lib.rs1#![recursion_limit = "256"]
4#![deny(
5 unused_variables,
6 mutable_borrow_reservation_conflict,
7 dead_code,
8 unused_must_use,
9 unused_imports
10)]
11
12extern crate proc_macro;
13extern crate proc_macro2;
14
15mod derive_eager_loading;
16mod impl_load_from_for_diesel;
17
18use impl_load_from_for_diesel::Backend;
19use proc_macro_error::*;
20
21#[proc_macro_derive(
22 EagerLoading,
23 attributes(eager_loading, has_one, option_has_one, has_many, has_many_through)
24)]
25#[proc_macro_error]
26pub fn derive_eager_loading(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
27 derive_eager_loading::gen_tokens(input)
28}
29
30#[proc_macro]
31pub fn impl_load_from_for_diesel_pg(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
32 impl_load_from_for_diesel::go(input, Backend::Pg)
33}
34
35#[proc_macro]
36pub fn impl_load_from_for_diesel_mysql(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
37 impl_load_from_for_diesel::go(input, Backend::Mysql)
38}
39
40#[proc_macro]
41pub fn impl_load_from_for_diesel_sqlite(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
42 impl_load_from_for_diesel::go(input, Backend::Sqlite)
43}