use crate::{Marking, PlaceId, TransitionId};
#[derive(Debug, Default)]
pub struct Place {
pub(crate) id: PlaceId,
pub label: Option<String>,
pub initial: usize,
pub produced_by: Marking<TransitionId>,
pub consumed_by: Marking<TransitionId>,
pub condition_for: Marking<TransitionId>,
pub inhibitor_for: Marking<TransitionId>,
}
impl Place {
#[must_use]
pub fn id(&self) -> PlaceId {
self.id
}
#[must_use]
pub fn is_disconnected(&self) -> bool {
self.produced_by.is_empty()
&& self.consumed_by.is_empty()
&& self.condition_for.is_empty()
&& self.inhibitor_for.is_empty()
}
}