From 3ca5b238238e1128aa7bbfbd5db9e632045d8600 Mon Sep 17 00:00:00 2001 From: Laurenz Date: Mon, 28 Feb 2022 15:50:48 +0100 Subject: Reorganize library --- src/eval/class.rs | 2 +- src/eval/layout.rs | 4 +- src/eval/mod.rs | 16 +- src/eval/styles.rs | 3 +- src/eval/template.rs | 7 +- src/library/align.rs | 73 --- src/library/columns.rs | 113 ---- src/library/container.rs | 26 - src/library/deco.rs | 74 --- src/library/elements/heading.rs | 150 +++++ src/library/elements/image.rs | 116 ++++ src/library/elements/list.rs | 212 ++++++++ src/library/elements/math.rs | 37 ++ src/library/elements/mod.rs | 15 + src/library/elements/shape.rs | 166 ++++++ src/library/elements/table.rs | 100 ++++ src/library/flow.rs | 273 ---------- src/library/grid.rs | 581 -------------------- src/library/heading.rs | 152 ------ src/library/hide.rs | 32 -- src/library/image.rs | 118 ---- src/library/layout/align.rs | 71 +++ src/library/layout/columns.rs | 111 ++++ src/library/layout/container.rs | 24 + src/library/layout/flow.rs | 272 ++++++++++ src/library/layout/grid.rs | 579 ++++++++++++++++++++ src/library/layout/hide.rs | 30 + src/library/layout/mod.rs | 27 + src/library/layout/pad.rs | 83 +++ src/library/layout/page.rs | 419 ++++++++++++++ src/library/layout/place.rs | 59 ++ src/library/layout/spacing.rs | 52 ++ src/library/layout/stack.rs | 259 +++++++++ src/library/layout/transform.rs | 86 +++ src/library/link.rs | 66 --- src/library/list.rs | 210 ------- src/library/math.rs | 39 -- src/library/mod.rs | 206 +++---- src/library/numbering.rs | 113 ---- src/library/pad.rs | 85 --- src/library/page.rs | 421 -------------- src/library/par.rs | 634 ---------------------- src/library/place.rs | 61 --- src/library/prelude.rs | 20 + src/library/raw.rs | 129 ----- src/library/shape.rs | 156 ------ src/library/spacing.rs | 54 -- src/library/stack.rs | 261 --------- src/library/table.rs | 102 ---- src/library/text.rs | 1114 -------------------------------------- src/library/text/deco.rs | 250 +++++++++ src/library/text/link.rs | 64 +++ src/library/text/mod.rs | 409 ++++++++++++++ src/library/text/par.rs | 617 +++++++++++++++++++++ src/library/text/raw.rs | 127 +++++ src/library/text/shaping.rs | 552 +++++++++++++++++++ src/library/transform.rs | 79 --- src/library/utility.rs | 294 ---------- src/library/utility/math.rs | 114 ++++ src/library/utility/mod.rs | 187 +++++++ src/library/utility/numbering.rs | 111 ++++ 61 files changed, 5405 insertions(+), 5412 deletions(-) delete mode 100644 src/library/align.rs delete mode 100644 src/library/columns.rs delete mode 100644 src/library/container.rs delete mode 100644 src/library/deco.rs create mode 100644 src/library/elements/heading.rs create mode 100644 src/library/elements/image.rs create mode 100644 src/library/elements/list.rs create mode 100644 src/library/elements/math.rs create mode 100644 src/library/elements/mod.rs create mode 100644 src/library/elements/shape.rs create mode 100644 src/library/elements/table.rs delete mode 100644 src/library/flow.rs delete mode 100644 src/library/grid.rs delete mode 100644 src/library/heading.rs delete mode 100644 src/library/hide.rs delete mode 100644 src/library/image.rs create mode 100644 src/library/layout/align.rs create mode 100644 src/library/layout/columns.rs create mode 100644 src/library/layout/container.rs create mode 100644 src/library/layout/flow.rs create mode 100644 src/library/layout/grid.rs create mode 100644 src/library/layout/hide.rs create mode 100644 src/library/layout/mod.rs create mode 100644 src/library/layout/pad.rs create mode 100644 src/library/layout/page.rs create mode 100644 src/library/layout/place.rs create mode 100644 src/library/layout/spacing.rs create mode 100644 src/library/layout/stack.rs create mode 100644 src/library/layout/transform.rs delete mode 100644 src/library/link.rs delete mode 100644 src/library/list.rs delete mode 100644 src/library/math.rs delete mode 100644 src/library/numbering.rs delete mode 100644 src/library/pad.rs delete mode 100644 src/library/page.rs delete mode 100644 src/library/par.rs delete mode 100644 src/library/place.rs create mode 100644 src/library/prelude.rs delete mode 100644 src/library/raw.rs delete mode 100644 src/library/shape.rs delete mode 100644 src/library/spacing.rs delete mode 100644 src/library/stack.rs delete mode 100644 src/library/table.rs delete mode 100644 src/library/text.rs create mode 100644 src/library/text/deco.rs create mode 100644 src/library/text/link.rs create mode 100644 src/library/text/mod.rs create mode 100644 src/library/text/par.rs create mode 100644 src/library/text/raw.rs create mode 100644 src/library/text/shaping.rs delete mode 100644 src/library/transform.rs delete mode 100644 src/library/utility.rs create mode 100644 src/library/utility/math.rs create mode 100644 src/library/utility/mod.rs create mode 100644 src/library/utility/numbering.rs (limited to 'src') diff --git a/src/eval/class.rs b/src/eval/class.rs index 5e1857d7..2cced74d 100644 --- a/src/eval/class.rs +++ b/src/eval/class.rs @@ -33,7 +33,7 @@ use crate::Context; /// ``` /// /// [construct]: Self::construct -/// [`TextNode`]: crate::library::TextNode +/// [`TextNode`]: crate::library::text::TextNode /// [`set`]: Self::set #[derive(Clone)] pub struct Class { diff --git a/src/eval/layout.rs b/src/eval/layout.rs index 38ad3977..02912544 100644 --- a/src/eval/layout.rs +++ b/src/eval/layout.rs @@ -9,7 +9,7 @@ use crate::diag::TypResult; use crate::eval::StyleChain; use crate::frame::{Element, Frame, Geometry, Shape, Stroke}; use crate::geom::{Align, Length, Linear, Paint, Point, Sides, Size, Spec, Transform}; -use crate::library::{AlignNode, PadNode, TransformNode, MOVE}; +use crate::library::layout::{AlignNode, MoveNode, PadNode}; use crate::util::Prehashed; use crate::Context; @@ -203,7 +203,7 @@ impl LayoutNode { /// Transform this node's contents without affecting layout. pub fn moved(self, offset: Point) -> Self { if !offset.is_zero() { - TransformNode:: { + MoveNode { transform: Transform::translation(offset.x, offset.y), child: self, } diff --git a/src/eval/mod.rs b/src/eval/mod.rs index 380e9e9d..f8b4b0f0 100644 --- a/src/eval/mod.rs +++ b/src/eval/mod.rs @@ -120,7 +120,7 @@ impl Eval for StrongNode { type Output = Template; fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult { - Ok(Template::show(library::StrongNode( + Ok(Template::show(library::text::StrongNode( self.body().eval(ctx, scp)?, ))) } @@ -130,7 +130,7 @@ impl Eval for EmphNode { type Output = Template; fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult { - Ok(Template::show(library::EmphNode( + Ok(Template::show(library::text::EmphNode( self.body().eval(ctx, scp)?, ))) } @@ -140,12 +140,12 @@ impl Eval for RawNode { type Output = Template; fn eval(&self, _: &mut Context, _: &mut Scopes) -> EvalResult { - let template = Template::show(library::RawNode { + let template = Template::show(library::text::RawNode { text: self.text.clone(), block: self.block, }); Ok(match self.lang { - Some(_) => template.styled(library::RawNode::LANG, self.lang.clone()), + Some(_) => template.styled(library::text::RawNode::LANG, self.lang.clone()), None => template, }) } @@ -155,7 +155,7 @@ impl Eval for MathNode { type Output = Template; fn eval(&self, _: &mut Context, _: &mut Scopes) -> EvalResult { - Ok(Template::show(library::MathNode { + Ok(Template::show(library::elements::MathNode { formula: self.formula.clone(), display: self.display, })) @@ -166,7 +166,7 @@ impl Eval for HeadingNode { type Output = Template; fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult { - Ok(Template::show(library::HeadingNode { + Ok(Template::show(library::elements::HeadingNode { body: self.body().eval(ctx, scp)?, level: self.level(), })) @@ -177,7 +177,7 @@ impl Eval for ListNode { type Output = Template; fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult { - Ok(Template::List(library::ListItem { + Ok(Template::List(library::elements::ListItem { number: None, body: Box::new(self.body().eval(ctx, scp)?), })) @@ -188,7 +188,7 @@ impl Eval for EnumNode { type Output = Template; fn eval(&self, ctx: &mut Context, scp: &mut Scopes) -> EvalResult { - Ok(Template::Enum(library::ListItem { + Ok(Template::Enum(library::elements::ListItem { number: self.number(), body: Box::new(self.body().eval(ctx, scp)?), })) diff --git a/src/eval/styles.rs b/src/eval/styles.rs index 8e7bd4b6..5a8371a9 100644 --- a/src/eval/styles.rs +++ b/src/eval/styles.rs @@ -5,7 +5,8 @@ use std::sync::Arc; use super::{Args, Func, Span, Template, Value}; use crate::diag::{At, TypResult}; -use crate::library::{PageNode, ParNode}; +use crate::library::layout::PageNode; +use crate::library::text::ParNode; use crate::Context; /// A map of style properties. diff --git a/src/eval/template.rs b/src/eval/template.rs index 747e5d44..94cc0aff 100644 --- a/src/eval/template.rs +++ b/src/eval/template.rs @@ -10,11 +10,10 @@ use super::{ StyleMap, StyleVecBuilder, }; use crate::diag::StrResult; +use crate::library::elements::{ListItem, ListKind, ListNode, ORDERED, UNORDERED}; +use crate::library::layout::{FlowChild, FlowNode, PageNode, PlaceNode, SpacingKind}; use crate::library::prelude::*; -use crate::library::{ - DecoNode, FlowChild, FlowNode, ListItem, ListKind, ListNode, PageNode, ParChild, - ParNode, PlaceNode, SpacingKind, TextNode, ORDERED, UNDERLINE, UNORDERED, -}; +use crate::library::text::{DecoNode, ParChild, ParNode, TextNode, UNDERLINE}; use crate::util::EcoString; /// Composable representation of styled content. diff --git a/src/library/align.rs b/src/library/align.rs deleted file mode 100644 index 2fd734d3..00000000 --- a/src/library/align.rs +++ /dev/null @@ -1,73 +0,0 @@ -//! Aligning nodes in their parent container. - -use super::prelude::*; -use super::ParNode; - -/// Align a node along the layouting axes. -#[derive(Debug, Hash)] -pub struct AlignNode { - /// How to align the node horizontally and vertically. - pub aligns: Spec>, - /// The node to be aligned. - pub child: LayoutNode, -} - -#[class] -impl AlignNode { - fn construct(_: &mut Context, args: &mut Args) -> TypResult