diff --git a/packages/rsx_interpreter/src/lib.rs b/packages/rsx_interpreter/src/lib.rs index 8f74ce29b..ff50dcdb2 100644 --- a/packages/rsx_interpreter/src/lib.rs +++ b/packages/rsx_interpreter/src/lib.rs @@ -24,7 +24,8 @@ lazy_static! { // the location of the code relative to the current crate based on [std::panic::Location] #[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)] pub struct CodeLocation { - pub file: String, + pub crate_path: String, + pub file_path: String, pub line: u32, pub column: u32, } @@ -83,14 +84,12 @@ macro_rules! get_line_num { () => {{ let line = line!(); let column = column!(); - let file = file!(); + let file_path = file!().to_string(); + let crate_path = env!("CARGO_MANIFEST_DIR").to_string(); - #[cfg(windows)] - let file = env!("CARGO_MANIFEST_DIR").to_string() + "\\" + file!(); - #[cfg(unix)] - let file = env!("CARGO_MANIFEST_DIR").to_string() + "/" + file!(); CodeLocation { - file: file.to_string(), + crate_path, + file_path, line: line, column: column, } diff --git a/packages/rsx_interpreter/tests/render.rs b/packages/rsx_interpreter/tests/render.rs index cc724db97..661d16c5d 100644 --- a/packages/rsx_interpreter/tests/render.rs +++ b/packages/rsx_interpreter/tests/render.rs @@ -10,7 +10,8 @@ fn render_basic() { let dom = VirtualDom::new(Base); let static_vnodes = rsx!(div{"hello world"}); let location = CodeLocation { - file: String::new(), + file_path: String::new(), + crate_path: String::new(), line: 0, column: 0, }; @@ -55,7 +56,8 @@ fn render_nested() { } }; let location = CodeLocation { - file: String::new(), + file_path: String::new(), + crate_path: String::new(), line: 1, column: 0, }; @@ -106,7 +108,8 @@ fn render_component() { } }; let location = CodeLocation { - file: String::new(), + file_path: String::new(), + crate_path: String::new(), line: 2, column: 0, }; @@ -157,7 +160,8 @@ fn render_iterator() { } }; let location = CodeLocation { - file: String::new(), + file_path: String::new(), + crate_path: String::new(), line: 3, column: 0, }; @@ -210,7 +214,8 @@ fn render_captured_variable() { } }; let location = CodeLocation { - file: String::new(), + file_path: String::new(), + crate_path: String::new(), line: 4, column: 0, }; @@ -261,7 +266,8 @@ fn render_listener() { } }; let location = CodeLocation { - file: String::new(), + file_path: String::new(), + crate_path: String::new(), line: 5, column: 0, };