1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
macro_rules! as_ref_for_contract_impl_generator {
($struct_ident:ident) => {
impl ::core::convert::AsRef<odra_ir::module::ModuleImpl> for $struct_ident<'_> {
fn as_ref(&self) -> &odra_ir::module::ModuleImpl {
self.contract
}
}
};
}
use generator::GenerateCode;
mod generator;
mod poet;
pub use poet::OdraPoet;
pub fn generate_code<T>(entity: T) -> proc_macro2::TokenStream
where
T: OdraPoet,
{
<T as OdraPoet>::Poet::from(entity).generate_code()
}