use crate::*;
#[derive(Clone, Data, Debug, New)]
pub(crate) struct VarsParam {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) name: Ident,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) param_type: Type,
}
#[derive(Clone, Data, Debug, New)]
pub(crate) struct VarsDef {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) visibility: Visibility,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) name: Ident,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) params: Option<Vec<VarsParam>>,
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) vars: Vec<(String, VarsValue)>,
}
#[derive(Clone, Data, Debug, New)]
pub(crate) struct VarsInput {
#[get(pub(crate))]
#[get_mut(pub(crate))]
#[set(pub(crate))]
pub(crate) defs: Vec<VarsDef>,
}