Create a Metrics module
This commit is contained in:
29
lib/Graphics/Fountainhead/Metrics.hs
Normal file
29
lib/Graphics/Fountainhead/Metrics.hs
Normal file
@@ -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
|
Reference in New Issue
Block a user