pub trait TypeStore<T> {
    type Ty: 'static + HyperType + Eq + Hash + Copy + Send + Sync;
    type Marshaled;

    const MASK: u16;

    // Required methods
    fn resolve_type(&self, n: &T) -> Self::Ty;
    fn resolve_lang(&self, n: &T) -> LangWrapper<Self::Ty>;
    fn marshal_type(&self, n: &T) -> Self::Marshaled;
}

Required Associated Types§

source

type Ty: 'static + HyperType + Eq + Hash + Copy + Send + Sync

source

type Marshaled

Required Associated Constants§

Required Methods§

source

fn resolve_type(&self, n: &T) -> Self::Ty

source

fn resolve_lang(&self, n: &T) -> LangWrapper<Self::Ty>

source

fn marshal_type(&self, n: &T) -> Self::Marshaled

Implementors§

source§

impl<'store, T, TS, NS, LS> TypeStore<T> for SimpleStores<TS, NS, LS>where T: Tree, T::TreeId: NodeId<IdN = T::TreeId>, T::Type: 'static + Hash, TS: TypeStore<T, Ty = T::Type>, NS: NodeStore<T::TreeId>,

§

type Ty = <TS as TypeStore<T>>::Ty

source§

const MASK: u16 = TS::MASK

§

type Marshaled = <TS as TypeStore<T>>::Marshaled

source§

impl<'store, T, TS, NS, LS> TypeStore<T> for SimpleHyperAST<T, TS, NS, LS>where T: Tree, T::TreeId: NodeId<IdN = T::TreeId>, T::Type: 'static + Hash, TS: TypeStore<T, Ty = T::Type>,

§

type Ty = <TS as TypeStore<T>>::Ty

source§

const MASK: u16 = TS::MASK

§

type Marshaled = <TS as TypeStore<T>>::Marshaled