use crate::timed::TimeRange;
use crate::{Marking, PlaceId, TransitionId};
#[derive(Debug, Default)]
pub struct Transition {
pub(crate) id: TransitionId,
pub label: Option<String>,
pub time: TimeRange,
pub conditions: Marking<PlaceId>,
pub inhibitors: Marking<PlaceId>,
pub consume: Marking<PlaceId>,
pub produce: Marking<PlaceId>,
pub priorities: Vec<TransitionId>,
}
impl Transition {
#[must_use]
pub fn id(&self) -> TransitionId {
self.id
}
#[must_use]
pub fn is_disconnected(&self) -> bool {
self.produce.is_empty()
&& self.consume.is_empty()
&& self.conditions.is_empty()
&& self.inhibitors.is_empty()
}
}