wayver's git archive


an obsidian renderer
git clone https://git.wayver.dev/sable

sable-bases/src/engine.rs@2b84405277e54ab809e328cf0237374d4b4dbd0c

raw
Date Commit Message Author Files + -
2026-02-23 01:55 initial mvp wayverd 139 17808 0
...

1use chumsky::{Parser as _, input::Input as _};
2
3#[derive(Debug, thiserror::Error)]
4pub enum EvalError {}
5
6pub struct Engine {
7    // runtime: rquickjs::Context,
8}
9
10impl Engine {
11    pub fn new() {}
12
13    pub fn eval(&self, filter: &str) -> Result<(), EvalError> {
14        let tokens = crate::filter::parser::lexer().parse(filter).unwrap();
15        let expr = crate::filter::parser::parser()
16            .parse(tokens[..].split_spanned((0..filter.len()).into()))
17            .unwrap();
18        let js = crate::filter::convert::ast_to_js(&expr.inner);
19
20        // self.runtime.with(|ctx| {});
21
22        Ok(())
23    }
24}
25