use syn::token::Mut;
use syn::{Ident, Type, TypeParamBound, WherePredicate};
use crate::cgp_fn::UseTypeSpec;
use crate::cgp_impl::UseProviderSpec;
use crate::derive_getter::FieldMode;
use crate::parse::SimpleType;
#[derive(Clone, Eq, PartialEq)]
pub struct ImplicitArgField {
pub field_name: Ident,
pub field_type: Type,
pub field_mut: Option<Mut>,
pub field_mode: FieldMode,
pub arg_type: Type,
}
#[derive(Default)]
pub struct FunctionAttributes {
pub extend: Vec<TypeParamBound>,
pub extend_where: Vec<WherePredicate>,
pub uses: Vec<SimpleType>,
pub use_type: Vec<UseTypeSpec>,
pub use_provider: Vec<UseProviderSpec>,
}