use crate::{
Module,
GradleProperties,
SettingsGradle,
};
use serde::{Serialize,Deserialize};
#[derive(Deserialize, Serialize, Debug, PartialEq)]
pub struct Project<'a> {
#[deprecated(note = "maybe useless field")]
pub name : &'a str,
pub modules : Vec<Module<'a>>,
pub properties : GradleProperties<'a>,
pub setting_gradle : SettingsGradle<'a>,
}
impl<'a> Project<'a> {
pub fn new(
name: &'a str,
modules: Vec<Module<'a>>,
properties: GradleProperties<'a>,
setting_gradle: SettingsGradle<'a>,
) -> Self {
Project {
name,
modules,
properties,
setting_gradle,
}
}
}
#[cfg(feature = "generate")]
impl crate::Generate for Project<'_> {
fn generate(&self,directory : &str) {
self.properties.generate(directory);
self.setting_gradle.generate(directory);
for module in &self.modules {
module.generate(directory)
};
}
}