conch_runtime_pshaw/eval/
ast_impl.rs

1//! This module defines various `WordEval` implementations on AST types defined by
2//! the `conch-parser` crate.
3
4use crate::eval::{RedirectOrCmdWord, RedirectOrVarAssig};
5use conch_parser::ast;
6
7mod arith;
8mod complex_word;
9mod param_subst;
10mod parameter;
11mod redirect;
12mod simple_word;
13mod word;
14
15impl<R, W> From<ast::RedirectOrCmdWord<R, W>> for RedirectOrCmdWord<R, W> {
16    fn from(from: ast::RedirectOrCmdWord<R, W>) -> Self {
17        match from {
18            ast::RedirectOrCmdWord::Redirect(r) => RedirectOrCmdWord::Redirect(r),
19            ast::RedirectOrCmdWord::CmdWord(w) => RedirectOrCmdWord::CmdWord(w),
20        }
21    }
22}
23
24impl<R, V, W> From<ast::RedirectOrEnvVar<R, V, W>> for RedirectOrVarAssig<R, V, W> {
25    fn from(from: ast::RedirectOrEnvVar<R, V, W>) -> Self {
26        match from {
27            ast::RedirectOrEnvVar::Redirect(r) => RedirectOrVarAssig::Redirect(r),
28            ast::RedirectOrEnvVar::EnvVar(k, v) => RedirectOrVarAssig::VarAssig(k, v),
29        }
30    }
31}