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}