pipecircuit 0.0.24

Correct. Robust. Fast. Portable. Pick four.
Documentation
use super::{SlotSet, StableSlot};

#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[must_use]
pub enum SlotSetRemoveOutcome {
    Removed { slot: StableSlot },
    Absent { slot: StableSlot },
}

impl SlotSet {
    pub fn remove(&mut self, slot: StableSlot) -> SlotSetRemoveOutcome {
        let removed = self.0.remove(slot.value());
        if removed {
            SlotSetRemoveOutcome::Removed { slot }
        } else {
            SlotSetRemoveOutcome::Absent { slot }
        }
    }
}