[][src]Struct chalk_ir::InEnvironment

pub struct InEnvironment<G: HasInterner> {
    pub environment: Environment<G::Interner>,
    pub goal: G,
}

A goal with an environment to solve it in.

Fields

environment: Environment<G::Interner>goal: G

Implementations

impl<G: HasInterner> InEnvironment<G>[src]

pub fn new(environment: &Environment<G::Interner>, goal: G) -> Self[src]

Creates a new environment/goal pair.

pub fn map<OP, H>(self, op: OP) -> InEnvironment<H> where
    OP: FnOnce(G) -> H,
    H: HasInterner<Interner = G::Interner>, 
[src]

Maps the goal without touching the environment.

Trait Implementations

impl<T, U, I> CastTo<InEnvironment<U>> for InEnvironment<T> where
    T: HasInterner<Interner = I> + CastTo<U>,
    U: HasInterner<Interner = I>,
    I: Interner
[src]

impl<G: Clone + HasInterner> Clone for InEnvironment<G> where
    G::Interner: Clone
[src]

impl<G: HasInterner<Interner = I> + Copy, I: Interner> Copy for InEnvironment<G> where
    I::InternedProgramClauses: Copy
[src]

impl<G: Debug + HasInterner> Debug for InEnvironment<G> where
    G::Interner: Debug
[src]

impl<G: Eq + HasInterner> Eq for InEnvironment<G> where
    G::Interner: Eq
[src]

impl<G: HasInterner, _I, _U, _TI> Fold<_I, _TI> for InEnvironment<G> where
    _I: Interner,
    G: HasInterner<Interner = _I>,
    G: Fold<_I, _TI, Result = _U>,
    _U: HasInterner<Interner = _TI>,
    _TI: TargetInterner<_I>, 
[src]

type Result = InEnvironment<_U>

The type of value that will be produced once folding is done. Typically this is Self, unless Self contains borrowed values, in which case owned values are produced (for example, one can fold over a &T value where T: Fold, in which case you get back a T, not a &T). Read more

impl<G: HasInterner> HasInterner for InEnvironment<G>[src]

type Interner = G::Interner

The interner associated with the type.

impl<G: Hash + HasInterner> Hash for InEnvironment<G> where
    G::Interner: Hash
[src]

impl<G: PartialEq + HasInterner> PartialEq<InEnvironment<G>> for InEnvironment<G> where
    G::Interner: PartialEq
[src]

impl<G: HasInterner> StructuralEq for InEnvironment<G>[src]

impl<G: HasInterner> StructuralPartialEq for InEnvironment<G>[src]

impl<G: HasInterner, _I> Visit<_I> for InEnvironment<G> where
    _I: Interner,
    G: HasInterner<Interner = _I>,
    G: Visit<_I>, 
[src]

impl<T: HasInterner<Interner = I> + Zip<I>, I: Interner> Zip<I> for InEnvironment<T>[src]

Auto Trait Implementations

impl<G> RefUnwindSafe for InEnvironment<G> where
    G: RefUnwindSafe,
    <<G as HasInterner>::Interner as Interner>::InternedProgramClauses: RefUnwindSafe

impl<G> Send for InEnvironment<G> where
    G: Send,
    <<G as HasInterner>::Interner as Interner>::InternedProgramClauses: Send

impl<G> Sync for InEnvironment<G> where
    G: Sync,
    <<G as HasInterner>::Interner as Interner>::InternedProgramClauses: Sync

impl<G> Unpin for InEnvironment<G> where
    G: Unpin,
    <<G as HasInterner>::Interner as Interner>::InternedProgramClauses: Unpin

impl<G> UnwindSafe for InEnvironment<G> where
    G: UnwindSafe,
    <<G as HasInterner>::Interner as Interner>::InternedProgramClauses: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Cast for T[src]

impl<T, I> CouldMatch<T> for T where
    I: Interner,
    T: Zip<I> + HasInterner<Interner = I> + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, I> Shift<I> for T where
    I: Interner,
    T: Fold<I, I>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, I> VisitExt<I> for T where
    I: Interner,
    T: Visit<I>, 
[src]