use serde::{Deserialize, Serialize};
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct LabConfig {
pub lab: LabDesc,
pub nodes: Vec<Node>,
pub links: Vec<Link>,
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct LabDesc {
pub description: String,
pub notes: String,
pub timestamp: f64,
pub title: String,
pub version: String,
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct Node {
pub id: String,
pub label: String,
pub node_definition: String,
pub x: isize,
pub y: isize,
pub configuration: String,
pub tags: Vec<String>,
pub interfaces: Vec<Interface>,
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct Link {
pub id: String,
pub i1: String,
pub n1: String,
pub i2: String,
pub n2: String,
}
#[derive(Debug, PartialEq, Serialize, Deserialize)]
pub struct Interface {
pub id: String,
pub slot: Option<isize>, pub label: String,
#[serde(rename = "type")]
pub format: String,
}