eure-macros 0.1.9

Derive macros for Eure schema generation
Documentation
mod emit_ir;

use proc_macro2::TokenStream;

use crate::codegen_ir_adapter::{self, DeriveIrArtifacts};
use crate::context::MacroContext;

pub fn derive(context: MacroContext) -> TokenStream {
    derive_inner(&context).unwrap_or_else(syn::Error::into_compile_error)
}

fn derive_inner(context: &MacroContext) -> syn::Result<TokenStream> {
    let artifacts = codegen_ir_adapter::derive_input_to_ir_artifacts(&context.input)?;
    derive_ir(&artifacts)
}

pub(crate) fn derive_ir(artifacts: &DeriveIrArtifacts) -> syn::Result<TokenStream> {
    emit_ir::derive(&artifacts.module, &artifacts.spans)
}