summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/eval/state.rs2
-rw-r--r--src/eval/value.rs3
-rw-r--r--src/export/pdf.rs5
-rw-r--r--src/geom/mod.rs2
-rw-r--r--src/geom/paint.rs (renamed from src/color.rs)13
-rw-r--r--src/layout/frame.rs12
-rw-r--r--src/lib.rs1
-rw-r--r--src/library/elements.rs4
-rw-r--r--src/library/mod.rs1
-rw-r--r--src/library/text.rs2
-rw-r--r--src/library/utility.rs1
-rw-r--r--tests/typeset.rs7
12 files changed, 22 insertions, 31 deletions
diff --git a/src/eval/state.rs b/src/eval/state.rs
index a9195199..5d8d3172 100644
--- a/src/eval/state.rs
+++ b/src/eval/state.rs
@@ -1,11 +1,9 @@
use std::rc::Rc;
-use crate::color::{Color, RgbaColor};
use crate::font::{
FontFamily, FontStretch, FontStyle, FontVariant, FontWeight, VerticalFontMetric,
};
use crate::geom::*;
-use crate::layout::Paint;
use crate::paper::{PaperClass, ISO_A4};
/// Defines an set of properties a template can be instantiated with.
diff --git a/src/eval/value.rs b/src/eval/value.rs
index a1d65a18..2c6167a4 100644
--- a/src/eval/value.rs
+++ b/src/eval/value.rs
@@ -4,9 +4,8 @@ use std::fmt::{self, Debug, Formatter};
use std::rc::Rc;
use super::{ops, Array, Dict, Function, Str, Template};
-use crate::color::{Color, RgbaColor};
use crate::diag::StrResult;
-use crate::geom::{Angle, Fractional, Length, Linear, Relative};
+use crate::geom::{Angle, Color, Fractional, Length, Linear, Relative, RgbaColor};
use crate::syntax::Spanned;
use crate::util::EcoString;
diff --git a/src/export/pdf.rs b/src/export/pdf.rs
index 3abda916..1ac8149d 100644
--- a/src/export/pdf.rs
+++ b/src/export/pdf.rs
@@ -13,11 +13,10 @@ use pdf_writer::{Content, Filter, Finish, Name, PdfWriter, Rect, Ref, Str, Unico
use ttf_parser::{name_id, GlyphId, Tag};
use super::subset;
-use crate::color::Color;
use crate::font::{find_name, FaceId, FontStore};
-use crate::geom::{self, Em, Length, Size};
+use crate::geom::{self, Color, Em, Length, Paint, Size};
use crate::image::{Image, ImageId, ImageStore};
-use crate::layout::{Element, Frame, Geometry, Paint};
+use crate::layout::{Element, Frame, Geometry};
use crate::Context;
/// Export a collection of frames into a PDF document.
diff --git a/src/geom/mod.rs b/src/geom/mod.rs
index 936f1868..ad92813e 100644
--- a/src/geom/mod.rs
+++ b/src/geom/mod.rs
@@ -10,6 +10,7 @@ mod fr;
mod gen;
mod length;
mod linear;
+mod paint;
mod path;
mod point;
mod relative;
@@ -25,6 +26,7 @@ pub use fr::*;
pub use gen::*;
pub use length::*;
pub use linear::*;
+pub use paint::*;
pub use path::*;
pub use point::*;
pub use relative::*;
diff --git a/src/color.rs b/src/geom/paint.rs
index 966ab3d6..2ac11b56 100644
--- a/src/color.rs
+++ b/src/geom/paint.rs
@@ -1,9 +1,14 @@
-//! Color handling.
-
-use std::fmt::{self, Debug, Display, Formatter};
+use std::fmt::Display;
use std::str::FromStr;
-use serde::{Deserialize, Serialize};
+use super::*;
+
+/// How a fill or stroke should be painted.
+#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)]
+pub enum Paint {
+ /// A solid color.
+ Color(Color),
+}
/// A color in a dynamic format.
#[derive(Copy, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)]
diff --git a/src/layout/frame.rs b/src/layout/frame.rs
index c74f2abd..0e986fe4 100644
--- a/src/layout/frame.rs
+++ b/src/layout/frame.rs
@@ -4,9 +4,8 @@ use std::rc::Rc;
use serde::{Deserialize, Serialize};
use super::{Constrained, Constraints};
-use crate::color::Color;
use crate::font::FaceId;
-use crate::geom::{Em, Length, Path, Point, Size};
+use crate::geom::{Em, Length, Paint, Path, Point, Size};
use crate::image::ImageId;
/// A finished layout with elements at fixed positions.
@@ -36,7 +35,7 @@ pub enum Element {
/// Shaped text.
Text(Text),
/// A geometric shape and the paint which with it should be filled or
- /// stroked.
+ /// stroked (which one depends on the kind of geometry).
Geometry(Geometry, Paint),
/// A raster image.
Image(ImageId, Size),
@@ -83,13 +82,6 @@ pub enum Geometry {
Path(Path),
}
-/// How a fill or stroke should be painted.
-#[derive(Debug, Copy, Clone, Eq, PartialEq, Hash, Serialize, Deserialize)]
-pub enum Paint {
- /// A solid color.
- Color(Color),
-}
-
impl Frame {
/// Create a new, empty frame.
#[track_caller]
diff --git a/src/lib.rs b/src/lib.rs
index fa988207..4ac40d96 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -33,7 +33,6 @@
pub mod diag;
#[macro_use]
pub mod eval;
-pub mod color;
pub mod export;
pub mod font;
pub mod geom;
diff --git a/src/library/elements.rs b/src/library/elements.rs
index d1c52ab7..9680dfee 100644
--- a/src/library/elements.rs
+++ b/src/library/elements.rs
@@ -5,9 +5,7 @@ use decorum::N64;
use super::*;
use crate::diag::Error;
-use crate::layout::{
- BackgroundNode, BackgroundShape, FixedNode, ImageNode, PadNode, Paint,
-};
+use crate::layout::{BackgroundNode, BackgroundShape, FixedNode, ImageNode, PadNode};
/// `image`: An image.
pub fn image(ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
diff --git a/src/library/mod.rs b/src/library/mod.rs
index 411755bb..d99eb24d 100644
--- a/src/library/mod.rs
+++ b/src/library/mod.rs
@@ -16,7 +16,6 @@ pub use utility::*;
use std::convert::TryFrom;
use std::rc::Rc;
-use crate::color::{Color, RgbaColor};
use crate::diag::{At, TypResult};
use crate::eval::{Args, Array, EvalContext, Scope, State, Str, Template, Value};
use crate::font::{FontFamily, FontStretch, FontStyle, FontWeight, VerticalFontMetric};
diff --git a/src/library/text.rs b/src/library/text.rs
index 2816ea81..b532b20b 100644
--- a/src/library/text.rs
+++ b/src/library/text.rs
@@ -1,5 +1,5 @@
use super::*;
-use crate::layout::{Decoration, LineDecoration, LineKind, Paint};
+use crate::layout::{Decoration, LineDecoration, LineKind};
/// `font`: Configure the font.
pub fn font(ctx: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
diff --git a/src/library/utility.rs b/src/library/utility.rs
index ef7adff0..16a6f5db 100644
--- a/src/library/utility.rs
+++ b/src/library/utility.rs
@@ -2,7 +2,6 @@ use std::cmp::Ordering;
use std::str::FromStr;
use super::*;
-use crate::color::{Color, RgbaColor};
/// `assert`: Ensure that a condition is fulfilled.
pub fn assert(_: &mut EvalContext, args: &mut Args) -> TypResult<Value> {
diff --git a/tests/typeset.rs b/tests/typeset.rs
index 778d8f6c..5ca81da5 100644
--- a/tests/typeset.rs
+++ b/tests/typeset.rs
@@ -9,15 +9,16 @@ use tiny_skia as sk;
use ttf_parser::{GlyphId, OutlineBuilder};
use walkdir::WalkDir;
-use typst::color::{Color, RgbaColor};
use typst::diag::Error;
use typst::eval::{State, Value};
use typst::font::Face;
-use typst::geom::{self, Length, PathElement, Point, Sides, Size};
+use typst::geom::{
+ self, Color, Length, Paint, PathElement, Point, RgbaColor, Sides, Size,
+};
use typst::image::Image;
#[cfg(feature = "layout-cache")]
use typst::layout::LayoutTree;
-use typst::layout::{layout, Element, Frame, Geometry, Paint, Text};
+use typst::layout::{layout, Element, Frame, Geometry, Text};
use typst::loading::FsLoader;
use typst::parse::Scanner;
use typst::source::SourceFile;