use crate::core_impl::info_extractor::AttrSigInfo;
use syn::{ImplItemMethod, Type, Visibility};
pub struct ImplItemMethodInfo {
pub attr_signature_info: AttrSigInfo,
pub is_public: bool,
pub struct_type: Type,
}
impl ImplItemMethodInfo {
pub fn new(original: &mut ImplItemMethod, struct_type: Type) -> syn::Result<Self> {
let ImplItemMethod { attrs, sig, .. } = original;
let attr_signature_info = AttrSigInfo::new(attrs, sig)?;
let is_public = matches!(original.vis, Visibility::Public(_));
Ok(Self { attr_signature_info, is_public, struct_type })
}
}