espforge 0.1.2

A scaffolding++ project generator for bare-metal ESP32 projects
Documentation
use serde::Deserialize;
use std::collections::HashMap;

#[derive(Debug, Deserialize)]
pub struct ComponentManifest {
    pub name: String,
    pub requires: Vec<String>,
    pub parameters: Vec<ParameterDef>,
    pub setup_template: String,
    pub methods: HashMap<String, MethodDef>,
}

#[derive(Debug, Deserialize)]
pub struct ParameterDef {
    pub name: String,
    pub param_type: ParameterType,
    pub required: bool,
}

#[derive(Debug, Deserialize, PartialEq, Eq, Hash, Clone, Copy)]
pub enum ParameterType {
    GpioRef,
    I2cRef,
    I2cComponentRef,
    SpiRef,
    SpiComponentRef,
    UartRef,
    String,
    Integer,
    Boolean,
}

#[derive(Debug, Deserialize)]
pub struct MethodDef {
    pub template: String,
}