android-rust-cli 0.3.2

A CLI tool for generating Android Rust JNI templates in a single command
use serde::Deserialize;
use std::path::Path;

#[derive(Debug, Clone, Deserialize, Default)]
pub struct TemplateMetadata {
    #[serde(default)]
    pub template: TemplateInfo,
}

#[derive(Debug, Clone, Deserialize, Default)]
pub struct TemplateInfo {
    #[serde(default)]
    pub description: Option<String>,
    #[serde(default)]
    pub features: Vec<String>,
}

impl TemplateMetadata {
    pub fn from_toml(content: &str) -> Result<Self, toml::de::Error> {
        toml::from_str(content)
    }

    pub fn from_file(path: &Path) -> Option<Self> {
        let content = std::fs::read_to_string(path).ok()?;
        Self::from_toml(&content).ok()
    }
}