Skip to main content

cli/
eval.rs

1//! Thin shim — all eval logic lives in `cli_core::eval` (ADR-0021 Phase 3a).
2
3use cli_core::CommandError;
4use cli_core::eval::Rendered;
5use rpc::Session;
6
7pub use cli_core::eval::{RenderMode, build_create_transaction_form, escape_str};
8
9pub async fn eval_print(
10    session: &mut Session,
11    form: &str,
12    mode: RenderMode,
13) -> Result<(), CommandError> {
14    match cli_core::eval::eval_form(session, form, mode).await? {
15        Rendered::Lines(lines) => {
16            for line in lines {
17                println!("{line}");
18            }
19        }
20        Rendered::Bytes(b) => {
21            std::io::Write::write_all(&mut std::io::stdout(), &b)
22                .map_err(|e| CommandError::Command(format!("config-value stdout write: {e}")))?;
23        }
24        Rendered::Nothing => {}
25    }
26    Ok(())
27}