{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE OverloadedStrings #-} module Codec.Xlsx.Types.Internal where import Control.Arrow import Data.Monoid ((<>)) import Data.Text (Text) import GHC.Generics (Generic) import Codec.Xlsx.Parser.Internal import Codec.Xlsx.Writer.Internal newtype RefId = RefId { unRefId :: Text } deriving (Eq, Ord, Show, Generic) instance ToAttrVal RefId where toAttrVal = toAttrVal . unRefId instance FromAttrVal RefId where fromAttrVal t = first RefId <$> fromAttrVal t instance FromAttrBs RefId where fromAttrBs = fmap RefId . fromAttrBs unsafeRefId :: Int -> RefId unsafeRefId num = RefId $ "rId" <> txti num