use crate::id::{EdgeId, NodeId, PortId};
#[derive(Debug, Clone, PartialEq, Eq)]
pub struct Edge<E> {
id: EdgeId,
from: (NodeId, PortId),
to: (NodeId, PortId),
payload: E,
}
impl<E> Edge<E> {
pub fn new(id: EdgeId, from: (NodeId, PortId), to: (NodeId, PortId), payload: E) -> Self {
Self {
id,
from,
to,
payload,
}
}
pub const fn id(&self) -> EdgeId {
self.id
}
pub fn from(&self) -> &(NodeId, PortId) {
&self.from
}
pub fn to(&self) -> &(NodeId, PortId) {
&self.to
}
pub fn payload(&self) -> &E {
&self.payload
}
pub fn payload_mut(&mut self) -> &mut E {
&mut self.payload
}
}