kmmp-project-manager 0.1.0

kmmp-project-manager is a Rust crate for Kotlin Multiplatform (KMP) projects, offering a lightweight alternative to Android Studio. It provides tools for project creation, structure management, build automation, code generation, IDE integration, dependency management, and project configuration.
Documentation

use crate::ModuleGradle;

#[derive(serde::Serialize, serde::Deserialize)]
#[derive(Debug, PartialEq)]
#[serde(bound(deserialize = "'de: 'a"))]
/// Represents a module in a Gradle project.
pub struct Module<'a> {
    /// Module Gradle Info
    pub gradle : ModuleGradle<'a>,
    //.. android manifest , resources , images , defualt files , code generate , add 
}

impl<'a> Module<'a> {
    /// Creates a new `Module` instance.
    ///
    /// # Arguments
    ///
    /// * `module_gradle` - The `ModuleGradle` instance representing the Gradle configuration for the module.
    ///
    /// # Returns
    ///
    /// A new `Module` instance.
    pub fn new(gradle: ModuleGradle<'a>) -> Self {
        Module { gradle }
    }
}

#[cfg(feature = "generate")]
impl crate::Generate for Module<'_> {
    fn generate(&self,directory : &str) {
        let module_directory = format!("{}\\{}\\src", directory,self.gradle.metadata.module_name);

        crate::create_directory(&module_directory);

        let namespace = self.gradle.metadata.namespace;

        let joined_path = |name : &str| -> String {
            format!("{}\\{}",name,namespace)
        };

        match &self.gradle.module_content {
            crate::ModuleContent::Dependencies(_) => {
                crate::create_nested_directory(&joined_path("main"));
            },
            crate::ModuleContent::SourceSets(source_sets) => {
                for set in source_sets.as_list() {
                    crate::create_nested_directory(&joined_path(set.name));
                }
            }
        }
    }
}