From 3160ceab080fca8fef0cf2cf196b46284d15c19f Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 4 Feb 2024 11:07:15 +0100 Subject: Create a Metrics module --- lib/Graphics/Fountainhead/Metrics.hs | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 lib/Graphics/Fountainhead/Metrics.hs (limited to 'lib/Graphics/Fountainhead/Metrics.hs') diff --git a/lib/Graphics/Fountainhead/Metrics.hs b/lib/Graphics/Fountainhead/Metrics.hs new file mode 100644 index 0000000..bb50b93 --- /dev/null +++ b/lib/Graphics/Fountainhead/Metrics.hs @@ -0,0 +1,29 @@ +{- This Source Code Form is subject to the terms of the Mozilla Public License, + v. 2.0. If a copy of the MPL was not distributed with this file, You can + obtain one at https://mozilla.org/MPL/2.0/. -} + +{-# LANGUAGE OverloadedStrings #-} +{-# LANGUAGE RecordWildCards #-} + +module Graphics.Fountainhead.Metrics + ( FontMetrics(..) + , afmFontMetrics + ) where + +import qualified Data.Text.Lazy.Builder as Text.Builder +import Data.Version (Version(..), showVersion) +import Graphics.Fountainhead.Type (newlineBuilder) + +newtype FontMetrics = FontMetrics + { version :: Version + } deriving (Eq, Show) + +afmKeyString :: Text.Builder.Builder -> String -> Text.Builder.Builder +afmKeyString key value = key <> Text.Builder.singleton '\t' + <> Text.Builder.fromString value <> newlineBuilder + +afmFontMetrics :: FontMetrics -> Text.Builder.Builder +afmFontMetrics FontMetrics{..} + = afmKeyString "StartFontMetrics" (showVersion version) + <> afmKeyString "Comment" "Generated by Fountainhead" + <> "EndFontMetrics" <> newlineBuilder -- cgit v1.2.3