bluejay-typegen-codegen 0.4.0

Code generation utilities for `bluejay-typegen-macro`
Documentation
use crate::types::string;
use bluejay_core::BuiltinScalarDefinition;
use syn::parse_quote;

pub(crate) fn builtin_scalar_type(scalar: BuiltinScalarDefinition, borrows: bool) -> syn::Type {
    match scalar {
        BuiltinScalarDefinition::Boolean => parse_quote! { ::std::primitive::bool },
        BuiltinScalarDefinition::Float => parse_quote! { ::std::primitive::f64 },
        BuiltinScalarDefinition::ID => string(borrows),
        BuiltinScalarDefinition::Int => parse_quote! { ::std::primitive::i32 },
        BuiltinScalarDefinition::String => string(borrows),
    }
}

pub(crate) fn scalar_is_reference(scalar: BuiltinScalarDefinition) -> bool {
    matches!(
        scalar,
        BuiltinScalarDefinition::ID | BuiltinScalarDefinition::String
    )
}