Skip to main content

rl_lang/interpreter/stdlib/io/
println.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_println(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        buffer.push('\n');
12    } else {
13        println!("{}", text);
14    }
15    Ok(Value::Null)
16}