diff options
Diffstat (limited to 'lib/Graphics/Fountainhead/TrueType.hs')
| -rw-r--r-- | lib/Graphics/Fountainhead/TrueType.hs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Graphics/Fountainhead/TrueType.hs b/lib/Graphics/Fountainhead/TrueType.hs index 55d55ae..03852b5 100644 --- a/lib/Graphics/Fountainhead/TrueType.hs +++ b/lib/Graphics/Fountainhead/TrueType.hs @@ -4,7 +4,10 @@ {-# LANGUAGE DataKinds #-} {-# LANGUAGE DuplicateRecordFields #-} +{-# LANGUAGE LambdaCase #-} {-# LANGUAGE RecordWildCards #-} +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE ViewPatterns #-} -- | Types representing a TrueType font. module Graphics.Fountainhead.TrueType @@ -85,6 +88,7 @@ module Graphics.Fountainhead.TrueType , findTableByTag , unLocaTable , nameStringOffset + , pattern Os2Version4CommonFields ) where import Data.ByteString (ByteString) @@ -545,6 +549,21 @@ data Os2Table | Os2Version5 Os2BaseFields Os2MicrosoftFields Os2Version5Fields deriving (Eq, Show) +pattern Os2Version4CommonFields :: Os2BaseFields -> Os2Version4Fields -> Os2Table +pattern Os2Version4CommonFields baseFields versionFields <- + (os2Version4CommonFields -> Just (baseFields, versionFields)) + +{-# COMPLETE Os2Version4CommonFields, Os2Version0, Os2Version1, Os2Version5 #-} + +os2Version4CommonFields :: Os2Table -> Maybe (Os2BaseFields, Os2Version4Fields) +os2Version4CommonFields = \case + Os2Version0{} -> Nothing + Os2Version1{} -> Nothing + Os2Version2 baseFields _ versionFields -> Just (baseFields, versionFields) + Os2Version3 baseFields _ versionFields -> Just (baseFields, versionFields) + Os2Version4 baseFields _ versionFields -> Just (baseFields, versionFields) + Os2Version5{} -> Nothing + data Os2Version1Fields = Os2Version1Fields { ulCodePageRange1 :: Word32 , ulCodePageRange2 :: Word32 |
