pub trait LabelStore<L: ?Sized> {
    type I: Copy + Eq;

    // Required methods
    fn get_or_insert<T: Borrow<L>>(&mut self, node: T) -> Self::I;
    fn get<T: Borrow<L>>(&self, node: T) -> Option<Self::I>;
    fn resolve(&self, id: &Self::I) -> &L;
}

Required Associated Types§

source

type I: Copy + Eq

Required Methods§

source

fn get_or_insert<T: Borrow<L>>(&mut self, node: T) -> Self::I

source

fn get<T: Borrow<L>>(&self, node: T) -> Option<Self::I>

source

fn resolve(&self, id: &Self::I) -> &L

Implementors§

source§

impl LabelStore<str> for &LabelStore

§

type I = SymbolU32

source§

impl LabelStore<str> for LabelStore

§

type I = SymbolU32

source§

impl LabelStore<str> for FetchedLabels

source§

impl<'store, T, TS, NS, LS> LabelStore<str> for SimpleHyperAST<T, TS, NS, LS>where T: Tree, T::TreeId: NodeId<IdN = T::TreeId>, T::Type: 'static, LS: LabelStore<str, I = T::Label>, <T as Labeled>::Label: Copy,

§

type I = <LS as LabelStore<str>>::I

source§

impl<'store, TS, NS, LS> LabelStore<str> for SimpleStores<TS, NS, LS>where LS: LabelStore<str>,

§

type I = <LS as LabelStore<str>>::I