juniper_eager_loading_code_gen/
lib.rs

1//! See the docs for "juniper-eager-loading" for more info about this.
2
3#![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}