Skip to main content

rl_lang/interpreter/stdlib/fs/
copy_file.rs

1use crate::{
2    interpreter::{evaluator::Evaluator, values::Value},
3    utils::{errors::Error, span::Span},
4};
5
6pub fn std_copy_file(
7    eval: &mut Evaluator,
8    src: String,
9    dst: String,
10    span: Span,
11) -> Result<Value, Error> {
12    let bytes = std::fs::copy(&src, &dst).map_err(|e| {
13        eval.err(
14            format!(
15                "copy_file(): failed to copy \"{}\" to \"{}\": {}",
16                src, dst, e
17            ),
18            span,
19        )
20    })?;
21    Ok(Value::Integer(bytes as i64))
22}