Trait libunseemly::walk_mode::Dir[][src]

pub trait Dir: Debug + Copy + Clone where
    Self: Sized
{ type Mode: WalkMode; type Out: Clone + Debug + Reifiable; fn pre_walk(
        node: Ast,
        cnc: LazyWalkReses<Self::Mode>
    ) -> (Ast, LazyWalkReses<Self::Mode>);
fn walk_quasi_literally(
        node: Ast,
        cnc: &LazyWalkReses<Self::Mode>
    ) -> Result<<<Self::Mode as WalkMode>::D as Dir>::Out, <Self::Mode as WalkMode>::Err>;
fn walk_var(
        name: Name,
        cnc: &LazyWalkReses<Self::Mode>
    ) -> Result<<<Self::Mode as WalkMode>::D as Dir>::Out, <Self::Mode as WalkMode>::Err>;
fn walk_atom(
        name: Name,
        cnc: &LazyWalkReses<Self::Mode>
    ) -> Result<<<Self::Mode as WalkMode>::D as Dir>::Out, <Self::Mode as WalkMode>::Err>;
fn out_as_elt(out: Self::Out) -> <Self::Mode as WalkMode>::Elt;
fn out_as_env(out: Self::Out) -> Assoc<Name, <Self::Mode as WalkMode>::Elt>;
fn env_as_out(env: Assoc<Name, <Self::Mode as WalkMode>::Elt>) -> Self::Out;
fn is_positive() -> bool;
fn oeh_if_negative() -> Option<OutEnvHandle<Self::Mode>>; }

Associated Types

The output of the walking process.

Negated walks produce an environment of Self::Elt, positive walks produce Self::Elt.

Required methods

Get ready to destructure a node. Includes freshening (including the context_elt, if necessary) and and mode-specific leaf-processing

Look up variable in the environment!

For when we hackishly need to execute some code depending on the direction

If necessary, prepare to smuggle results across more-quoted AST

Implementors