petri/src/graph.rs
2019-12-21 01:19:11 +01:00

28 lines
No EOL
585 B
Rust

use std::collections::{HashMap, HashSet};
#[derive(Clone, Default, Debug)]
pub struct Graph {
pub nodes: HashMap<u32, Node>,
pub node_names: HashMap<String, u32>,
}
#[derive(Clone, Default, Debug)]
pub struct Node {
pub name: Option<String>,
// Set string to command
pub command: Option<String>,
pub edges: Vec<Edge>,
}
#[derive(Clone, Copy, Debug, Ord, PartialOrd, Eq, PartialEq, Hash)]
pub enum Transport {
Err,
Out,
}
#[derive(Clone, Default, Debug)]
pub struct Edge {
pub from: u32,
pub to: u32,
pub transports: HashSet<Transport>,
}