From 78749296776b2d9b7cb1d03b93c97ceb32c8c0b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gustav=20S=C3=B6rn=C3=A4s?= Date: Sun, 10 Jan 2021 14:06:38 +0100 Subject: take Paths where files are needed --- src/vm.rs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/vm.rs') diff --git a/src/vm.rs b/src/vm.rs index 530eeec..5d8b5f8 100644 --- a/src/vm.rs +++ b/src/vm.rs @@ -1,5 +1,6 @@ use std::collections::HashMap; use std::fmt; +use std::path::{Path, PathBuf}; #[derive(Debug, Clone, Copy, PartialEq, PartialOrd)] pub enum Value { @@ -36,17 +37,17 @@ pub enum Op { #[derive(Debug)] pub struct Block { name: String, - filename: String, + file: PathBuf, ops: Vec, last_line_offset: Option, line_offsets: HashMap, } impl Block { - pub fn new(name: &str, filename: &str) -> Self { + pub fn new(name: &str, file: &Path) -> Self { Self { name: String::from(name), - filename: String::from(filename), + file: file.to_owned(), ops: Vec::new(), last_line_offset: None, line_offsets: HashMap::new(), @@ -90,7 +91,7 @@ pub enum VMErrorKind { #[derive(Debug)] pub struct VMError { kind: VMErrorKind, - filename: String, + file: PathBuf, line: usize, message: Option, } @@ -117,7 +118,7 @@ impl fmt::Display for VMError { Some(s) => format!("\n{}", s), None => String::from(""), }; - write!(f, "{}:{} [Runtime Error] {}{}", self.filename, self.line, self.kind, message) + write!(f, "{:?}:{} [Runtime Error] {}{}", self.file, self.line, self.kind, message) } } @@ -164,7 +165,7 @@ impl VM { VMError { kind, - filename: self.block.filename.clone(), + file: self.block.file.clone(), line: find_line(), message, } -- cgit v1.2.1