use std::collections::HashSet;
use slotmap::{DefaultKey};
use crate::runtime::{InteractionID, InteractionQuantityID, ParticleID};
pub type BarrierID = DefaultKey;
#[derive(Clone)]
pub struct Barrier {
pub affected_particles: HashSet<ParticleID>,
pub kind: BarrierKind
}
impl Barrier {
pub(crate) fn new(affected_particles: HashSet<ParticleID>, kind: BarrierKind) -> Self {
Self {
affected_particles, kind
}
}
}
#[derive(Clone)]
pub enum BarrierKind {
InteractionBarrier(InteractionID, Option<InteractionQuantityID>),
CallBarrier(String)
}