use serde::{Deserialize, Serialize};
use std::collections::HashMap;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ArchitectureDescription {
pub metadata: ModelMetadata,
pub layers: Vec<LayerDefinition>,
pub connections: Vec<ConnectionDefinition>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ModelMetadata {
pub name: String,
pub version: Option<String>,
pub framework: Option<String>,
pub description: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct LayerDefinition {
pub name: String,
#[serde(rename = "type")]
pub layer_type: String,
pub params: Option<HashMap<String, serde_json::Value>>,
pub input_shape: Option<Vec<usize>>,
pub output_shape: Option<Vec<usize>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ConnectionDefinition {
pub from: String,
pub to: String,
#[serde(rename = "type")]
pub connection_type: Option<String>,
}