use line!, col!, and row! instead of panic location

This commit is contained in:
Evan Almloff committed 2022-06-20 15:44:10 -05:00
1 parent 21206390f8
commit dd335cda59
2 files changed
+18 -10

No files matched your search

+1 -1
View File
@@ -47,7 +47,7 @@ pub fn rsx(s: TokenStream) -> TokenStream {
Ok(captured) => {
let lazy = quote::quote! {
LazyNodes::new(move |__cx|{
let code_location = get_line_num();
let code_location = get_line_num!();
let captured = #captured;
let text = #rsx_text;
+17 -9
View File
@@ -6,7 +6,6 @@ use interperter::build;
use lazy_static::lazy_static;
use serde::{Deserialize, Serialize};
use std::collections::HashMap;
use std::panic::Location;
use std::sync::{RwLock, RwLockReadGuard};
use syn::parse_str;
@@ -79,14 +78,23 @@ fn interpert_rsx<'a, 'b>(
}
/// get the code location of the code that called this function
#[track_caller]
pub fn get_line_num() -> CodeLocation {
let location = Location::caller();
CodeLocation {
file: location.file().to_string(),
line: location.line(),
column: location.column(),
}
#[macro_export]
macro_rules! get_line_num {
() => {{
let line = line!();
let column = column!();
let file = file!();
#[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(),
line: line,
column: column,
}
}};
}
/// A handle to the rsx context with interior mutability