M balkon.cabal => balkon.cabal +30 -17
@@ 87,34 87,30 @@ common language
common warnings
ghc-options: -Wall
--- TODO: Utilise internal libraries
--- (https://cabal.readthedocs.io/en/3.4/cabal-package.html#sublibs)
--- to avoid exposing modules solely for tests.
-library
+library balkon-internal
import: language, warnings
- -- Directories containing source files.
+ -- Directories containing source files of the internal library.
hs-source-dirs: src
- -- Modules exported by the library.
+ -- Modules exported to tests and to the public part of the library.
exposed-modules:
- Data.Text.ParagraphLayout,
Data.Text.ParagraphLayout.Internal.Break,
Data.Text.ParagraphLayout.Internal.Fragment,
Data.Text.ParagraphLayout.Internal.LineHeight,
Data.Text.ParagraphLayout.Internal.Plain,
- Data.Text.ParagraphLayout.Internal.ProtoFragment
+ Data.Text.ParagraphLayout.Internal.Rect,
Data.Text.ParagraphLayout.Internal.ResolvedSpan,
Data.Text.ParagraphLayout.Internal.Run,
+ Data.Text.ParagraphLayout.Internal.Script,
Data.Text.ParagraphLayout.Internal.Span,
Data.Text.ParagraphLayout.Internal.TextContainer,
- Data.Text.ParagraphLayout.Internal.Zipper,
- Data.Text.ParagraphLayout.Rect
+ Data.Text.ParagraphLayout.Internal.Zipper
- -- Modules included in this library but not exported.
- other-modules: Data.Text.ParagraphLayout.Internal.Script
+ -- Modules used purely internally and not in any tests.
+ other-modules:
+ Data.Text.ParagraphLayout.Internal.ProtoFragment
- -- Other library packages from which modules are imported.
build-depends:
base ^>=4.15.1.0,
harfbuzz-pure ^>=1.0.2.0,
@@ 122,6 118,22 @@ library
text-icu ^>=0.8.0.2,
unicode-data-scripts ^>=0.2.0.1
+library
+ import: language, warnings
+
+ -- Directories containing source files.
+ hs-source-dirs: lib
+
+ -- Modules exported by the library.
+ exposed-modules:
+ Data.Text.ParagraphLayout,
+ Data.Text.ParagraphLayout.Rect
+
+ -- Other library packages from which modules are imported.
+ build-depends:
+ base ^>=4.15.1.0,
+ balkon-internal
+
test-suite balkon-test
import: language, warnings
@@ 148,16 160,17 @@ test-suite balkon-test
-- Test dependencies.
build-depends:
- base ^>=4.15.1.0,
+ base,
balkon,
+ balkon-internal,
bytestring ^>=0.11.4.0,
filepath ^>=1.4.100.0,
+ harfbuzz-pure,
hspec,
hspec-discover,
hspec-golden ^>=0.2.0.0,
- harfbuzz-pure ^>=1.0.2.0,
- text ^>=2.0.1,
- text-icu ^>=0.8.0.2
+ text,
+ text-icu
build-tool-depends:
hspec-discover:hspec-discover
R src/Data/Text/ParagraphLayout.hs => lib/Data/Text/ParagraphLayout.hs +0 -0
A lib/Data/Text/ParagraphLayout/Rect.hs => lib/Data/Text/ParagraphLayout/Rect.hs +17 -0
@@ 0,0 1,17 @@
+-- | Representation of an axis-aligned rectangle on a 2D plane, with one of its
+-- corners being a designated origin point.
+module Data.Text.ParagraphLayout.Rect
+ (Rect(Rect, x_origin, y_origin, x_size, y_size)
+ ,height
+ ,union
+ ,width
+ ,x_max
+ ,x_min
+ ,x_terminus
+ ,y_max
+ ,y_min
+ ,y_terminus
+ )
+where
+
+import Data.Text.ParagraphLayout.Internal.Rect
M src/Data/Text/ParagraphLayout/Internal/Fragment.hs => src/Data/Text/ParagraphLayout/Internal/Fragment.hs +1 -1
@@ 4,7 4,7 @@ where
import Data.Int (Int32)
import Data.Text.Glyphize (GlyphInfo, GlyphPos)
-import Data.Text.ParagraphLayout.Rect
+import Data.Text.ParagraphLayout.Internal.Rect
-- | Box fragment or fragment (CSS3), except that continuous text even within
-- one line can be split into multiple fragments because of spans or changes in
M src/Data/Text/ParagraphLayout/Internal/Plain.hs => src/Data/Text/ParagraphLayout/Internal/Plain.hs +1 -1
@@ 44,11 44,11 @@ import Data.Text.ParagraphLayout.Internal.Break
import Data.Text.ParagraphLayout.Internal.Fragment
import Data.Text.ParagraphLayout.Internal.LineHeight
import qualified Data.Text.ParagraphLayout.Internal.ProtoFragment as PF
+import Data.Text.ParagraphLayout.Internal.Rect
import qualified Data.Text.ParagraphLayout.Internal.ResolvedSpan as RS
import Data.Text.ParagraphLayout.Internal.Run
import Data.Text.ParagraphLayout.Internal.Span
import Data.Text.ParagraphLayout.Internal.TextContainer
-import Data.Text.ParagraphLayout.Rect
-- | Text to be laid out as a paragraph.
--
R src/Data/Text/ParagraphLayout/Rect.hs => src/Data/Text/ParagraphLayout/Internal/Rect.hs +1 -1
@@ 1,6 1,6 @@
-- | Representation of an axis-aligned rectangle on a 2D plane, with one of its
-- corners being a designated origin point.
-module Data.Text.ParagraphLayout.Rect
+module Data.Text.ParagraphLayout.Internal.Rect
(Rect(Rect, x_origin, y_origin, x_size, y_size)
,height
,union