summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorLaurenz <laurmaedje@gmail.com>2020-11-27 22:35:42 +0100
committerLaurenz <laurmaedje@gmail.com>2020-11-27 22:35:42 +0100
commit475ca7a62ec99f0b4d8319410b7ee3134a5fcfec (patch)
tree75037761e1da5681b2971e79e605f95903ba6032 /src/lib.rs
parentbc997b7c3380d5f516f0aa58efc3dd513d75fafb (diff)
Basic environment and resource loader 🏞
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs16
1 files changed, 8 insertions, 8 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 7d54da4c..d471b09d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -29,6 +29,7 @@ pub mod diag;
#[macro_use]
pub mod eval;
pub mod color;
+pub mod env;
pub mod export;
pub mod font;
pub mod geom;
@@ -40,19 +41,18 @@ pub mod prelude;
pub mod shaping;
pub mod syntax;
+use std::rc::Rc;
+
use crate::diag::{Feedback, Pass};
+use crate::env::SharedEnv;
use crate::eval::State;
-use crate::font::SharedFontLoader;
use crate::layout::BoxLayout;
/// Process _Typst_ source code directly into a collection of layouts.
-pub fn typeset(
- src: &str,
- state: State,
- loader: SharedFontLoader,
-) -> Pass<Vec<BoxLayout>> {
+pub fn typeset(src: &str, env: SharedEnv, state: State) -> Pass<Vec<BoxLayout>> {
let Pass { output: tree, feedback: f1 } = parse::parse(src);
- let Pass { output: document, feedback: f2 } = eval::eval(&tree, state);
- let layouts = layout::layout(&document, loader);
+ let Pass { output: document, feedback: f2 } =
+ eval::eval(&tree, Rc::clone(&env), state);
+ let layouts = layout::layout(&document, env);
Pass::new(layouts, Feedback::join(f1, f2))
}