1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::idmap::{IdIndex, IdMap};

/// Id uniquely identifying a prefix
#[derive(Debug, Clone, Copy, Hash, PartialEq, Eq, Ord, PartialOrd)]
pub struct PrefixId(u16);

impl IdIndex<PrefixId> for PrefixId {
    fn to_id(index: usize) -> PrefixId {
        PrefixId(index as u16)
    }

    fn from_id(id: PrefixId) -> usize {
        id.0 as usize
    }
}

pub(crate) type PrefixLookup = IdMap<PrefixId, String>;