df-derive-macros 0.4.0

Procedural derive macro implementation for df-derive.
Documentation
use crate::ir::NestedNamePolicy;
use proc_macro2::TokenStream;
use quote::quote;

pub(in crate::codegen) fn compose_nested_name(
    policy: &NestedNamePolicy,
    parent_name: &str,
    inner_name: &TokenStream,
) -> TokenStream {
    match policy {
        NestedNamePolicy::Field => quote! {
            ::std::format!("{}.{}", #parent_name, #inner_name)
        },
        NestedNamePolicy::Flatten => quote! {
            ::std::string::ToString::to_string(&(#inner_name))
        },
        NestedNamePolicy::Prefix(prefix) => quote! {
            ::std::format!("{}.{}", #prefix, #inner_name)
        },
    }
}