diesel_derives 2.4.0

You should not use this crate directly, it is internal to Diesel.
Documentation
use super::derive;
use super::expand_with;

#[test]
pub(crate) fn enum_1() {
    let input = quote::quote! {
        #[derive(Debug, diesel::Enum)]
        #[diesel(sql_type = schema::sql_types::Color)]
        enum Color {
            Red,
            Green,
            Blue
        }
    };

    expand_with(
        &crate::derive_enum_inner as &dyn Fn(_) -> _,
        input,
        derive(syn::parse_quote!(#[derive(Enum)])),
        "enum_1",
    );
}

#[test]
pub(crate) fn enum_2() {
    let input = quote::quote! {
        #[derive(Debug, diesel::Enum)]
        #[diesel(sql_type = diesel::sql_types::Integer)]
        enum Color {
            Red = 1,
            Green = 2,
            Blue = 3
        }
    };

    expand_with(
        &crate::derive_enum_inner as &dyn Fn(_) -> _,
        input,
        derive(syn::parse_quote!(#[derive(Enum)])),
        "enum_2",
    );
}

#[test]
fn rename_all() {
    let input = quote::quote! {
        #[derive(Debug, diesel::Enum)]
        #[diesel(sql_type = diesel::sql_types::Text)]
        #[diesel(rename_all = "snake_case")]
        enum Color {
            RedColor,
            GreenColor,
            BlueColor,
        }
    };

    expand_with(
        &crate::derive_enum_inner as &dyn Fn(_) -> _,
        input,
        derive(syn::parse_quote!(#[derive(Enum)])),
        "enum_rename_all",
    );
}

#[test]
fn rename_single() {
    let input = quote::quote! {
        #[derive(Debug, diesel::Enum)]
        #[diesel(sql_type = diesel::sql_types::Text)]
        enum Color {
            #[diesel(rename = "ReD")]
            Red,
            #[diesel(rename = "GreeN")]
            Green,
            #[diesel(rename = "BluE")]
            Blue
        }
    };

    expand_with(
        &crate::derive_enum_inner as &dyn Fn(_) -> _,
        input,
        derive(syn::parse_quote!(#[derive(Enum)])),
        "enum_rename_single",
    );
}