use crate::Memory;
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Room {
pub project: String,
pub topic: String,
pub count: usize,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct ProjectTaxon {
pub project: String,
pub rooms: Vec<Room>,
pub total: usize,
}
#[derive(Debug, Clone, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct Tunnel {
pub topic: String,
pub project_a: String,
pub project_b: String,
pub count_a: usize,
pub count_b: usize,
}
#[derive(Debug, Clone, Default, PartialEq, Eq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct PalaceGraph {
pub projects: Vec<String>,
pub tunnels: Vec<Tunnel>,
}
#[derive(Debug, Clone, PartialEq)]
#[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
pub struct TunnelTraversal {
pub topic: String,
pub project_a: String,
pub project_b: String,
pub memories_a: Vec<Memory>,
pub memories_b: Vec<Memory>,
}