[][src]Struct chalk_ir::InEnvironment

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

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]

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

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: 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

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]