1
//! Thin shim — all eval logic lives in `cli_core::eval` (ADR-0021 Phase 3a).
2

            
3
use cli_core::CommandError;
4
use cli_core::eval::Rendered;
5
use rpc::Session;
6

            
7
pub use cli_core::eval::{RenderMode, build_create_transaction_form, escape_str};
8

            
9
pub 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
}