use serde_derive::{Deserialize, Serialize};
#[derive(Deserialize, Serialize, Clone, Ord, PartialOrd, Eq, PartialEq, Debug, Hash, Default)]
pub struct Doc {
pub package_name: String,
pub repo: Option<String>,
pub nodes: Vec<Node>,
}
#[derive(Deserialize, Serialize, Clone, Ord, PartialOrd, Eq, PartialEq, Debug, Hash, Default)]
pub struct Node {
pub node_name: String,
pub source_file: Vec<String>,
pub summary: String,
pub potential_improvements: Option<String>,
pub misc: Option<String>,
pub publishes: Option<Vec<Topic>>,
pub subscribes: Option<Vec<Topic>>,
pub params: Option<Vec<Param>>,
pub launch: Option<Vec<LaunchInfo>>,
}
#[derive(Deserialize, Serialize, Clone, Ord, PartialOrd, Eq, PartialEq, Debug, Hash, Default)]
pub struct Topic {
pub name: String,
pub description: String,
}
#[derive(Deserialize, Serialize, Clone, Ord, PartialOrd, Eq, PartialEq, Debug, Hash, Default)]
pub struct Param {
pub name: String,
pub description: String,
}
#[derive(Deserialize, Serialize, Clone, Ord, PartialOrd, Eq, PartialEq, Debug, Hash, Default)]
pub struct LaunchInfo {
pub file_path: String,
pub usage: String,
pub args: Option<Vec<Param>>,
pub remap: Option<Vec<Remap>>
}
#[derive(Deserialize, Serialize, Clone, Ord, PartialOrd, Eq, PartialEq, Debug, Hash, Default)]
pub struct Remap {
pub from: String,
pub to: String
}