use crate::{
config::E2EConfig,
ir,
};
use proc_macro2::TokenStream as TokenStream2;
pub struct InkE2ETest {
pub item_fn: E2EFn,
pub config: E2EConfig,
}
#[derive(derive_more::From)]
pub struct E2EFn {
pub item_fn: syn::ItemFn,
}
impl InkE2ETest {
pub fn new(attrs: TokenStream2, input: TokenStream2) -> Result<Self, syn::Error> {
let config = syn::parse2::<ink_ir::ast::AttributeArgs>(attrs)?;
let e2e_config = ir::E2EConfig::try_from(config)?;
let item_fn = syn::parse2::<syn::ItemFn>(input)?;
let e2e_fn = E2EFn::from(item_fn);
Ok(Self {
item_fn: e2e_fn,
config: e2e_config,
})
}
}