Trait PathContainer

Source
pub trait PathContainer<'sg, 'rslv, LABEL: 'sg, DATA: 'sg>: 'rslv {
    type EnvContainer;

    // Required method
    fn map_into_env<F: 'rslv + FnMut(Path<LABEL>) -> Self::EnvContainer>(
        self,
        f: F,
    ) -> Self::EnvContainer;
}
Expand description

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

Required Associated Types§

Source

type EnvContainer

Type returned by resolving a path to its sub-environment.

Required Methods§

Source

fn map_into_env<F: 'rslv + FnMut(Path<LABEL>) -> Self::EnvContainer>( self, f: F, ) -> Self::EnvContainer

Computes sub-environments for each path in the container, and composes them using the [crate::containers::EnvContainer::lift_merge] method.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'rslv, 'sg, LABEL, DATA> PathContainer<'sg, 'rslv, LABEL, DATA> for Vec<Path<LABEL>>
where Self: 'rslv, LABEL: Clone + Hash + Eq + 'sg, DATA: Hash + Eq + 'sg,

Source§

type EnvContainer = Env<'sg, LABEL, DATA>

Source§

fn map_into_env<F: FnMut(Path<LABEL>) -> Self::EnvContainer>( self, f: F, ) -> Self::EnvContainer

Source§

impl<'rslv, 'sg, LABEL, DATA, E: 'rslv> PathContainer<'sg, 'rslv, LABEL, DATA> for Result<Vec<Path<LABEL>>, E>
where Self: 'rslv, LABEL: Clone + Hash + Eq + 'sg, DATA: Hash + 'sg, for<'a> ResolvedPath<'a, LABEL, DATA>: Hash + Eq,

Source§

type EnvContainer = Result<Env<'sg, LABEL, DATA>, E>

Source§

fn map_into_env<F: FnMut(Path<LABEL>) -> Self::EnvContainer>( self, f: F, ) -> Self::EnvContainer

Implementors§

Source§

impl<'sg, 'rslv, LABEL, DATA> PathContainer<'sg, 'rslv, LABEL, DATA> for FutureWrapper<'rslv, Vec<Path<LABEL>>>
where Self: 'rslv, LABEL: Clone + Hash + Eq + 'sg, DATA: Hash + 'sg, for<'a> ResolvedPath<'a, LABEL, DATA>: Hash + Eq,

Source§

type EnvContainer = FutureWrapper<'rslv, Env<'sg, LABEL, DATA>>