#[cfg(feature = "generate")]
use std::{
fs::File,
io::Write
};
#[derive(Debug, PartialEq, PartialOrd)]
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(bound(deserialize = "'de: 'a"))]
pub struct GradleProperties<'a>(Vec<(&'a str, &'a str)>);
impl GradleProperties<'_> {
pub const FILE_NAME : &str = "gradle.properties";
}
impl<'a> From<Vec<(&'a str, &'a str)>> for GradleProperties<'a> {
fn from(vector : Vec<(&'a str, &'a str)>) -> Self {
Self(vector)
}
}
impl std::fmt::Display for GradleProperties<'_> {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
for (key, value) in &self.0 {
writeln!(f, "{}={}", key, value)?;
};
Ok(())
}
}
#[cfg(feature = "generate")]
impl crate::Generate for GradleProperties<'_> {
fn generate(&self,directory : &str) {
let create_directory = format!("{}\\{}",directory,Self::FILE_NAME);
let _ = File::create(&create_directory).expect("Error Creating File").write_all(self.to_string().as_bytes());
}
}