pumpkin-core 0.5.0

The core of the Pumpkin constraint programming solver.
Documentation
use crate::containers::StorageKey;

#[derive(Default, Clone, Copy, Debug, PartialEq, Eq, Hash)]
pub(crate) struct NogoodId {
    pub(crate) id: u32,
}

impl StorageKey for NogoodId {
    fn index(&self) -> usize {
        self.id as usize
    }

    fn create_from_index(index: usize) -> Self {
        NogoodId { id: index as u32 }
    }
}

impl NogoodId {
    pub(crate) const fn into_bits(self) -> u32 {
        self.id
    }

    pub(crate) const fn from_bits(value: u32) -> Self {
        Self { id: value }
    }
}