use crate::vertex_id::VertexId;
use std::sync::Arc;
#[derive(Clone, Debug)]
pub struct Edge {
inbound: Arc<VertexId>,
outbound: Arc<VertexId>,
weight: f32
}
impl Edge {
pub fn new(outbound: Arc<VertexId>, inbound: Arc<VertexId>) -> Edge {
Edge {
inbound: inbound,
outbound: outbound,
weight: 0.0,
}
}
pub fn matches(&self, a: &VertexId, b: &VertexId) -> bool {
a == self.outbound.as_ref() && b == self.inbound.as_ref()
}
pub fn matches_any(&self, id: &VertexId) -> bool {
id == self.inbound.as_ref() || id == self.outbound.as_ref()
}
}