fix spelling of interpreter
This commit is contained in:
1 parent
b921dc4eec
commit
3b2ac82e8d
9 files changed
+6
-6
No files matched your search
@@ -0,0 +1,74 @@
|
||||
use dioxus_core::{Component, Element, LazyNodes, Scope, VNode};
|
||||
use dioxus_hooks::*;
|
||||
use error::Error;
|
||||
use interperter::build;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
use std::panic::Location;
|
||||
use std::sync::{Arc, RwLock, RwLockReadGuard};
|
||||
use syn::parse_str;
|
||||
|
||||
mod attributes;
|
||||
pub mod captuered_context;
|
||||
mod elements;
|
||||
mod error;
|
||||
mod interperter;
|
||||
|
||||
#[derive(Debug, Clone, Hash, PartialEq, Eq, Serialize, Deserialize)]
|
||||
pub struct CodeLocation {
|
||||
pub file: String,
|
||||
pub line: u32,
|
||||
pub column: u32,
|
||||
}
|
||||
|
||||
pub fn interpert_rsx<'a, 'b>(
|
||||
factory: dioxus_core::NodeFactory<'a>,
|
||||
text: &str,
|
||||
context: captuered_context::CapturedContext<'a>,
|
||||
) -> Result<VNode<'a>, Error> {
|
||||
build(
|
||||
parse_str(text).map_err(|err| Error::ParseError(err))?,
|
||||
context,
|
||||
&factory,
|
||||
)
|
||||
}
|
||||
|
||||
#[track_caller]
|
||||
pub fn get_line_num() -> CodeLocation {
|
||||
let location = Location::caller();
|
||||
CodeLocation {
|
||||
file: location.file().to_string(),
|
||||
line: location.line(),
|
||||
column: location.column(),
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
pub struct RsxContext {
|
||||
data: Arc<RwLock<RsxData>>,
|
||||
}
|
||||
|
||||
pub struct RsxData {
|
||||
pub hm: HashMap<CodeLocation, String>,
|
||||
error_handle: Box<dyn FnMut(Error)>,
|
||||
}
|
||||
|
||||
impl std::fmt::Debug for RsxData {
|
||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
f.debug_struct("RsxData").field("hm", &self.hm).finish()
|
||||
}
|
||||
}
|
||||
|
||||
impl RsxContext {
|
||||
pub fn insert(&self, loc: CodeLocation, text: String) {
|
||||
self.data.write().unwrap().hm.insert(loc, text);
|
||||
}
|
||||
|
||||
pub fn read(&self) -> RwLockReadGuard<RsxData> {
|
||||
self.data.read().unwrap()
|
||||
}
|
||||
|
||||
pub fn report_error(&self, error: Error) {
|
||||
(self.data.write().unwrap().error_handle)(error)
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user