use crate::config::E2EConfig;
use darling::{
ast::NestedMeta,
FromMeta,
};
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 e2e_config = E2EConfig::from_list(&NestedMeta::parse_meta_list(attrs)?)?;
let item_fn = syn::parse2::<syn::ItemFn>(input)?;
let e2e_fn = E2EFn::from(item_fn);
Ok(Self {
item_fn: e2e_fn,
config: e2e_config,
})
}
}