summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/doc.rs5
-rw-r--r--src/eval/args.rs (renamed from src/model/args.rs)0
-rw-r--r--src/eval/array.rs (renamed from src/model/array.rs)4
-rw-r--r--src/eval/cast.rs (renamed from src/model/cast.rs)5
-rw-r--r--src/eval/dict.rs (renamed from src/model/dict.rs)2
-rw-r--r--src/eval/func.rs (renamed from src/model/func.rs)6
-rw-r--r--src/eval/library.rs (renamed from src/model/library.rs)5
-rw-r--r--src/eval/methods.rs (renamed from src/model/methods.rs)0
-rw-r--r--src/eval/mod.rs (renamed from src/model/eval.rs)43
-rw-r--r--src/eval/module.rs (renamed from src/model/module.rs)0
-rw-r--r--src/eval/ops.rs (renamed from src/model/ops.rs)0
-rw-r--r--src/eval/scope.rs (renamed from src/model/scope.rs)0
-rw-r--r--src/eval/str.rs (renamed from src/model/str.rs)2
-rw-r--r--src/eval/symbol.rs (renamed from src/model/symbol.rs)0
-rw-r--r--src/eval/value.rs (renamed from src/model/value.rs)2
-rw-r--r--src/ide/analyze.rs2
-rw-r--r--src/ide/complete.rs2
-rw-r--r--src/ide/tooltip.rs2
-rw-r--r--src/lib.rs12
-rw-r--r--src/model/content.rs8
-rw-r--r--src/model/mod.rs43
-rw-r--r--src/model/styles.rs3
-rw-r--r--src/model/typeset.rs5
23 files changed, 73 insertions, 78 deletions
diff --git a/src/doc.rs b/src/doc.rs
index 55e2f467..cba3ca99 100644
--- a/src/doc.rs
+++ b/src/doc.rs
@@ -7,15 +7,14 @@ use std::sync::Arc;
use ecow::EcoString;
+use crate::eval::{dict, Dict, Value};
use crate::font::Font;
use crate::geom::{
self, rounded_rect, Abs, Align, Axes, Color, Corners, Dir, Em, Geometry, Numeric,
Paint, Point, Rel, RgbaColor, Shape, Sides, Size, Stroke, Transform,
};
use crate::image::Image;
-use crate::model::{
- capable, dict, node, Content, Dict, Fold, StableId, StyleChain, Value,
-};
+use crate::model::{capable, node, Content, Fold, StableId, StyleChain};
/// A finished document with metadata and page frames.
#[derive(Debug, Default, Clone, Hash)]
diff --git a/src/model/args.rs b/src/eval/args.rs
index 159e9a77..159e9a77 100644
--- a/src/model/args.rs
+++ b/src/eval/args.rs
diff --git a/src/model/array.rs b/src/eval/array.rs
index 746763ab..53bae06f 100644
--- a/src/model/array.rs
+++ b/src/eval/array.rs
@@ -12,11 +12,11 @@ use crate::diag::{bail, At, SourceResult, StrResult};
#[doc(hidden)]
macro_rules! __array {
($value:expr; $count:expr) => {
- $crate::model::Array::from_vec($crate::model::eco_vec![$value.into(); $count])
+ $crate::eval::Array::from_vec($crate::eval::eco_vec![$value.into(); $count])
};
($($value:expr),* $(,)?) => {
- $crate::model::Array::from_vec($crate::model::eco_vec![$($value.into()),*])
+ $crate::eval::Array::from_vec($crate::eval::eco_vec![$($value.into()),*])
};
}
diff --git a/src/model/cast.rs b/src/eval/cast.rs
index 4c300550..77521f7f 100644
--- a/src/model/cast.rs
+++ b/src/eval/cast.rs
@@ -4,9 +4,7 @@ use std::str::FromStr;
use ecow::EcoString;
-use super::{
- castable, Array, Content, Dict, Func, Label, Regex, Selector, Str, Transform, Value,
-};
+use super::{castable, Array, Dict, Func, Regex, Str, Value};
use crate::diag::StrResult;
use crate::doc::{Destination, Lang, Location, Region};
use crate::font::{FontStretch, FontStyle, FontWeight};
@@ -14,6 +12,7 @@ use crate::geom::{
Axes, Color, Corners, Dir, GenAlign, Get, Length, Paint, PartialStroke, Point, Ratio,
Rel, Sides, Smart,
};
+use crate::model::{Content, Label, Selector, Transform};
use crate::syntax::Spanned;
/// Cast from a value to a specific type.
diff --git a/src/model/dict.rs b/src/eval/dict.rs
index 50a2275f..6c1934c9 100644
--- a/src/model/dict.rs
+++ b/src/eval/dict.rs
@@ -18,7 +18,7 @@ macro_rules! __dict {
#[allow(unused_mut)]
let mut map = std::collections::BTreeMap::new();
$(map.insert($key.into(), $value.into());)*
- $crate::model::Dict::from_map(map)
+ $crate::eval::Dict::from_map(map)
}};
}
diff --git a/src/model/func.rs b/src/eval/func.rs
index 2ba462d3..e5280932 100644
--- a/src/model/func.rs
+++ b/src/eval/func.rs
@@ -5,11 +5,9 @@ use std::sync::Arc;
use comemo::{Prehashed, Track, Tracked, TrackedMut};
use ecow::EcoString;
-use super::{
- Args, CastInfo, Dict, Eval, Flow, Node, NodeId, Route, Scope, Scopes, Selector,
- StyleMap, Tracer, Value, Vm,
-};
+use super::{Args, CastInfo, Dict, Eval, Flow, Route, Scope, Scopes, Tracer, Value, Vm};
use crate::diag::{bail, SourceResult, StrResult};
+use crate::model::{Node, NodeId, Selector, StyleMap};
use crate::syntax::ast::{self, AstNode, Expr};
use crate::syntax::{SourceId, Span, SyntaxNode};
use crate::util::hash128;
diff --git a/src/model/library.rs b/src/eval/library.rs
index 8ef22f10..adfcc6e7 100644
--- a/src/model/library.rs
+++ b/src/eval/library.rs
@@ -5,10 +5,11 @@ use std::num::NonZeroUsize;
use ecow::EcoString;
use once_cell::sync::OnceCell;
-use super::{Content, Module, NodeId, StyleChain, StyleMap, Vt};
+use super::Module;
use crate::diag::SourceResult;
use crate::doc::Document;
use crate::geom::{Abs, Dir};
+use crate::model::{Content, NodeId, StyleChain, StyleMap, Vt};
use crate::util::hash128;
/// Definition of Typst's standard library.
@@ -139,6 +140,6 @@ pub fn set_lang_items(items: LangItems) {
/// Access a lang item.
macro_rules! item {
($name:ident) => {
- $crate::model::LANG_ITEMS.get().unwrap().$name
+ $crate::eval::LANG_ITEMS.get().unwrap().$name
};
}
diff --git a/src/model/methods.rs b/src/eval/methods.rs
index dcb1ca31..dcb1ca31 100644
--- a/src/model/methods.rs
+++ b/src/eval/methods.rs
diff --git a/src/model/eval.rs b/src/eval/mod.rs
index 225c5e7a..2cf6f4d1 100644
--- a/src/model/eval.rs
+++ b/src/eval/mod.rs
@@ -1,5 +1,40 @@
//! Evaluation of markup into modules.
+#[macro_use]
+mod library;
+#[macro_use]
+mod cast;
+#[macro_use]
+mod array;
+#[macro_use]
+mod dict;
+#[macro_use]
+mod str;
+#[macro_use]
+mod value;
+mod args;
+mod func;
+mod methods;
+mod module;
+mod ops;
+mod scope;
+mod symbol;
+
+pub use typst_macros::{castable, func};
+
+pub use self::args::*;
+pub use self::array::*;
+pub use self::cast::*;
+pub use self::dict::*;
+pub use self::func::*;
+pub use self::library::*;
+pub use self::methods::*;
+pub use self::module::*;
+pub use self::scope::*;
+pub use self::str::*;
+pub use self::symbol::*;
+pub use self::value::*;
+
use std::collections::BTreeMap;
use std::mem;
use std::path::{Path, PathBuf};
@@ -8,14 +43,10 @@ use comemo::{Track, Tracked, TrackedMut};
use ecow::EcoVec;
use unicode_segmentation::UnicodeSegmentation;
-use super::{
- combining_accent, methods, ops, Arg, Args, Array, CapturesVisitor, Closure, Content,
- Dict, Func, Label, LangItems, Module, Recipe, Scopes, Selector, StyleMap, Symbol,
- Transform, Value,
-};
use crate::diag::{
bail, error, At, SourceError, SourceResult, StrResult, Trace, Tracepoint,
};
+use crate::model::{Content, Label, Recipe, Selector, StyleMap, Transform};
use crate::syntax::ast::AstNode;
use crate::syntax::{
ast, parse_code, Source, SourceId, Span, Spanned, SyntaxKind, SyntaxNode,
@@ -43,7 +74,7 @@ pub fn eval(
// Hook up the lang items.
let library = world.library();
- super::set_lang_items(library.items.clone());
+ set_lang_items(library.items.clone());
// Evaluate the module.
let route = unsafe { Route::insert(route, id) };
diff --git a/src/model/module.rs b/src/eval/module.rs
index e911d859..e911d859 100644
--- a/src/model/module.rs
+++ b/src/eval/module.rs
diff --git a/src/model/ops.rs b/src/eval/ops.rs
index 52b9b06a..52b9b06a 100644
--- a/src/model/ops.rs
+++ b/src/eval/ops.rs
diff --git a/src/model/scope.rs b/src/eval/scope.rs
index f6bd2164..f6bd2164 100644
--- a/src/model/scope.rs
+++ b/src/eval/scope.rs
diff --git a/src/model/str.rs b/src/eval/str.rs
index 5fcc1d05..63ea5dc8 100644
--- a/src/model/str.rs
+++ b/src/eval/str.rs
@@ -15,7 +15,7 @@ use crate::geom::GenAlign;
#[doc(hidden)]
macro_rules! __format_str {
($($tts:tt)*) => {{
- $crate::model::Str::from($crate::model::eco_format!($($tts)*))
+ $crate::eval::Str::from($crate::eval::eco_format!($($tts)*))
}};
}
diff --git a/src/model/symbol.rs b/src/eval/symbol.rs
index 73c41067..73c41067 100644
--- a/src/model/symbol.rs
+++ b/src/eval/symbol.rs
diff --git a/src/model/value.rs b/src/eval/value.rs
index f6ab95de..5e06da76 100644
--- a/src/model/value.rs
+++ b/src/eval/value.rs
@@ -461,7 +461,7 @@ primitive! { Args: "arguments", Args }
#[cfg(test)]
mod tests {
use super::*;
- use crate::model::{array, dict};
+ use crate::eval::{array, dict};
#[track_caller]
fn test(value: impl Into<Value>, exp: &str) {
diff --git a/src/ide/analyze.rs b/src/ide/analyze.rs
index 357e98f8..3c46cca1 100644
--- a/src/ide/analyze.rs
+++ b/src/ide/analyze.rs
@@ -2,7 +2,7 @@ use std::path::PathBuf;
use comemo::Track;
-use crate::model::{eval, Module, Route, Tracer, Value};
+use crate::eval::{eval, Module, Route, Tracer, Value};
use crate::syntax::{ast, LinkedNode, Source, SyntaxKind};
use crate::util::PathExt;
use crate::World;
diff --git a/src/ide/complete.rs b/src/ide/complete.rs
index fe1afe66..06ab53a1 100644
--- a/src/ide/complete.rs
+++ b/src/ide/complete.rs
@@ -4,7 +4,7 @@ use ecow::{eco_format, EcoString};
use if_chain::if_chain;
use super::{analyze_expr, analyze_import, plain_docs_sentence, summarize_font_family};
-use crate::model::{methods_on, CastInfo, Scope, Value};
+use crate::eval::{methods_on, CastInfo, Scope, Value};
use crate::syntax::{ast, LinkedNode, Source, SyntaxKind};
use crate::World;
diff --git a/src/ide/tooltip.rs b/src/ide/tooltip.rs
index 0796c09e..ac0cb60b 100644
--- a/src/ide/tooltip.rs
+++ b/src/ide/tooltip.rs
@@ -2,8 +2,8 @@ use if_chain::if_chain;
use unicode_segmentation::UnicodeSegmentation;
use super::{analyze_expr, plain_docs_sentence, summarize_font_family};
+use crate::eval::{CastInfo, Tracer, Value};
use crate::geom::{round_2, Length, Numeric};
-use crate::model::{CastInfo, Tracer, Value};
use crate::syntax::ast;
use crate::syntax::{LinkedNode, Source, SyntaxKind};
use crate::World;
diff --git a/src/lib.rs b/src/lib.rs
index 1c399864..d73055d1 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -23,8 +23,8 @@
//! [parsed]: syntax::parse
//! [syntax tree]: syntax::SyntaxNode
//! [AST]: syntax::ast
-//! [evaluate]: model::eval
-//! [module]: model::Module
+//! [evaluate]: eval::eval
+//! [module]: eval::Module
//! [content]: model::Content
//! [typeset]: model::typeset
//! [document]: doc::Document
@@ -43,23 +43,23 @@ pub mod geom;
#[macro_use]
pub mod diag;
#[macro_use]
-pub mod model;
+pub mod eval;
pub mod doc;
pub mod export;
pub mod font;
pub mod ide;
pub mod image;
+pub mod model;
pub mod syntax;
use std::path::Path;
use comemo::{Prehashed, Track};
-use model::Tracer;
use crate::diag::{FileResult, SourceResult};
use crate::doc::Document;
+use crate::eval::{Library, Route, Tracer};
use crate::font::{Font, FontBook};
-use crate::model::{Library, Route};
use crate::syntax::{Source, SourceId};
use crate::util::Buffer;
@@ -68,7 +68,7 @@ pub fn compile(world: &(dyn World + 'static), source: &Source) -> SourceResult<D
// Evaluate the source file into a module.
let route = Route::default();
let mut tracer = Tracer::default();
- let module = model::eval(world.track(), route.track(), tracer.track_mut(), source)?;
+ let module = eval::eval(world.track(), route.track(), tracer.track_mut(), source)?;
// Typeset the module's contents.
model::typeset(world.track(), &module.content())
diff --git a/src/model/content.rs b/src/model/content.rs
index b8047ffa..b10a3409 100644
--- a/src/model/content.rs
+++ b/src/model/content.rs
@@ -10,11 +10,9 @@ use ecow::{EcoString, EcoVec};
use siphasher::sip128::{Hasher128, SipHasher};
use typst_macros::node;
-use super::{
- capability, capable, Args, Guard, Key, ParamInfo, Property, Recipe, Style, StyleMap,
- Value, Vm,
-};
+use super::{capability, capable, Guard, Key, Property, Recipe, Style, StyleMap};
use crate::diag::{SourceResult, StrResult};
+use crate::eval::{Args, ParamInfo, Value, Vm};
use crate::syntax::Span;
use crate::util::ReadableTypeId;
use crate::World;
@@ -243,7 +241,7 @@ impl Content {
}
/// Whether a label can be attached to the content.
- pub(super) fn labellable(&self) -> bool {
+ pub(crate) fn labellable(&self) -> bool {
!self.has::<dyn Unlabellable>()
}
diff --git a/src/model/mod.rs b/src/model/mod.rs
index 32b0a003..692d18d5 100644
--- a/src/model/mod.rs
+++ b/src/model/mod.rs
@@ -1,49 +1,16 @@
-//! Content and computation model.
+//! The document model.
#[macro_use]
-mod library;
-#[macro_use]
-mod cast;
-#[macro_use]
-mod array;
-#[macro_use]
-mod dict;
-#[macro_use]
-mod str;
-#[macro_use]
-mod value;
-#[macro_use]
mod styles;
-mod args;
mod content;
-mod eval;
-mod func;
-mod methods;
-mod module;
-mod ops;
mod realize;
-mod scope;
-mod symbol;
mod typeset;
-#[doc(hidden)]
-pub use once_cell;
-pub use typst_macros::{capability, capable, castable, func, node};
-
-pub use self::args::*;
-pub use self::array::*;
-pub use self::cast::*;
pub use self::content::*;
-pub use self::dict::*;
-pub use self::eval::*;
-pub use self::func::*;
-pub use self::library::*;
-pub use self::methods::*;
-pub use self::module::*;
pub use self::realize::*;
-pub use self::scope::*;
-pub use self::str::*;
pub use self::styles::*;
-pub use self::symbol::*;
pub use self::typeset::*;
-pub use self::value::*;
+
+#[doc(hidden)]
+pub use once_cell;
+pub use typst_macros::{capability, capable, node};
diff --git a/src/model/styles.rs b/src/model/styles.rs
index 27c40309..18507491 100644
--- a/src/model/styles.rs
+++ b/src/model/styles.rs
@@ -7,8 +7,9 @@ use std::sync::Arc;
use comemo::{Prehashed, Tracked};
-use super::{Args, Content, Dict, Func, Label, NodeId, Regex, Value};
+use super::{Content, Label, NodeId};
use crate::diag::{SourceResult, Trace, Tracepoint};
+use crate::eval::{Args, Dict, Func, Regex, Value};
use crate::geom::{
Abs, Align, Axes, Corners, Em, GenAlign, Length, Numeric, PartialStroke, Rel, Sides,
Smart,
diff --git a/src/model/typeset.rs b/src/model/typeset.rs
index 7af8094c..f8b5e012 100644
--- a/src/model/typeset.rs
+++ b/src/model/typeset.rs
@@ -5,9 +5,10 @@ use std::num::NonZeroUsize;
use comemo::{Track, Tracked, TrackedMut};
-use super::{Content, Selector, StyleChain, Value};
+use super::{Content, Selector, StyleChain};
use crate::diag::SourceResult;
use crate::doc::{Document, Element, Frame, Location, Meta};
+use crate::eval::Value;
use crate::geom::Transform;
use crate::util::hash128;
use crate::World;
@@ -46,7 +47,7 @@ pub fn typeset(world: Tracked<dyn World>, content: &Content) -> SourceResult<Doc
/// A virtual typesetter.
///
/// Holds the state needed to [typeset] content. This is the equivalent to the
-/// [Vm](super::Vm) for typesetting.
+/// [Vm](crate::eval::Vm) for typesetting.
pub struct Vt<'a> {
/// The compilation environment.
#[doc(hidden)]