Skip to main content

rl_lang/interpreter/stdlib/io/
print.rs

1use crate::interpreter::evaluator::Evaluator;
2use crate::interpreter::values::Value;
3use crate::utils::errors::Error;
4use crate::utils::span::Span;
5
6pub fn std_print(eval: &mut Evaluator, args: Vec<Value>, _: Span) -> Result<Value, Error> {
7    let text = args.iter().map(|s| s.to_string()).collect::<String>();
8
9    if let Some(buffer) = &mut eval.output_buffer {
10        buffer.push_str(&text);
11    } else {
12        print!("{}", text);
13    }
14    Ok(Value::Null)
15}