rl_lang/interpreter/stdlib/path/
path_pop.rs1use crate::{
2 interpreter::{evaluator::Evaluator, values::Value},
3 utils::{errors::Error, span::Span},
4};
5
6pub fn std_path_pop(eval: &mut Evaluator, path: Value, span: Span) -> Result<Value, Error> {
7 match path {
8 Value::String(s) => {
9 let mut buf = std::path::PathBuf::from(&s);
10 buf.pop();
11 Ok(Value::String(buf.to_string_lossy().to_string()))
12 }
13 other => Err(eval.err(
14 format!("path_push() expects a string, got {}", other.type_name()),
15 span,
16 )),
17 }
18}