Trait ScopeContainer

Source
pub trait ScopeContainer<LABEL> {
    type PathContainer;

    // Required method
    fn lift_step(self, lbl: LABEL, prefix: Path<LABEL>) -> Self::PathContainer;
}
Expand description

Interface for scope containers that support the operations required for query resolution.

Required Associated Types§

Source

type PathContainer

The type containing paths obtained after stepping to this scope.

Required Methods§

Source

fn lift_step(self, lbl: LABEL, prefix: Path<LABEL>) -> Self::PathContainer

Lift the Path::step operation into this container.

Should retain the contract that for all scopes s in self, prefix.step(lbl, s) is included in the resulting path container (except cyclic paths).

Implementations on Foreign Types§

Source§

impl<LABEL, SC: ScopeContainer<LABEL>, E> ScopeContainer<LABEL> for Result<SC, E>

Source§

type PathContainer = Result<<SC as ScopeContainer<LABEL>>::PathContainer, E>

Source§

fn lift_step(self, lbl: LABEL, prefix: Path<LABEL>) -> Self::PathContainer

Source§

impl<LABEL: Copy> ScopeContainer<LABEL> for Vec<Scope>

Source§

type PathContainer = Vec<Path<LABEL>>

Source§

fn lift_step(self, lbl: LABEL, prefix: Path<LABEL>) -> Self::PathContainer

Implementors§

Source§

impl<'rslv, LABEL, SC: ScopeContainer<LABEL> + Clone> ScopeContainer<LABEL> for FutureWrapper<'rslv, SC>
where LABEL: Copy + 'rslv, SC::PathContainer: Clone, Self: 'rslv,