Trait EnvContainer

Source
pub trait EnvContainer<'sg, 'rslv, LABEL: 'sg, DATA: 'sg>: From<Env<'sg, LABEL, DATA>> + 'rslv {
    // Required methods
    fn empty() -> Self;
    fn flat_map(
        &self,
        map: impl 'rslv + for<'short> FnOnce(&'short Env<'sg, LABEL, DATA>) -> Self,
    ) -> Self;
}
Expand description

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

Required Methods§

Source

fn empty() -> Self

Creates a new, container with an empty environment.

Source

fn flat_map( &self, map: impl 'rslv + for<'short> FnOnce(&'short Env<'sg, LABEL, DATA>) -> Self, ) -> Self

Maps the current container to a new one, based a provided mapping of the underlying environment.

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<'sg: 'rslv, 'rslv, LABEL: 'sg, DATA: 'sg> EnvContainer<'sg, 'rslv, LABEL, DATA> for Rc<Env<'sg, LABEL, DATA>>
where ResolvedPath<'sg, LABEL, DATA>: Hash + Eq,

Source§

fn empty() -> Self

Source§

fn flat_map( &self, map: impl for<'short> FnOnce(&'short Env<'sg, LABEL, DATA>) -> Self, ) -> Self

Source§

impl<'sg: 'rslv, 'rslv, LABEL: 'sg, DATA: 'sg, E> EnvContainer<'sg, 'rslv, LABEL, DATA> for Result<Env<'sg, LABEL, DATA>, E>
where ResolvedPath<'sg, LABEL, DATA>: Hash + Eq, E: Clone + 'rslv,

Source§

fn empty() -> Self

Source§

fn flat_map( &self, map: impl for<'short> FnOnce(&Env<'sg, LABEL, DATA>) -> Self, ) -> Self

Implementors§

Source§

impl<'sg: 'rslv, 'rslv, LABEL, DATA> EnvContainer<'sg, 'rslv, LABEL, DATA> for Env<'sg, LABEL, DATA>
where ResolvedPath<'sg, LABEL, DATA>: Hash + Eq,

Source§

impl<'sg: 'rslv, 'rslv, LABEL, DATA: 'sg> EnvContainer<'sg, 'rslv, LABEL, DATA> for FutureWrapper<'rslv, Env<'sg, LABEL, DATA>>
where ResolvedPath<'sg, LABEL, DATA>: Hash + Eq, LABEL: Clone + 'sg,