use quote::{format_ident, quote};
use rialo_sol_lang_idl::types::Idl;
pub fn gen_errors_mod(idl: &Idl) -> proc_macro2::TokenStream {
let errors = idl.errors.iter().map(|e| {
let name = format_ident!("{}", e.name);
quote! {
#name,
}
});
if errors.len() == 0 {
return quote! {
pub mod errors {
}
};
}
quote! {
pub mod errors {
#[rialo_sol_lang::error_code]
pub enum ProgramError {
#(#errors)*
}
}
}
}