docusign-client-0.0.1: src/DocuSign/Client/Types/Conversion.hs
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
{-| This module contains conversion operations that are guaranteed not to fail.
Such conversions are typically used when preparing messages to be sent to a
DocuSign server instance, and convert from types exposed by the user-facing
high-level client API to types consumed by the lower-level REST API.
-}
module DocuSign.Client.Types.Conversion where
import DocuSign.Client.Types
import Data.Text ( Text )
import qualified Data.Text as T
import qualified Data.UUID as U
-- | A class for conversions that are guaranteed not to fail.
class Convert a b where
convert :: a -> b
instance Convert AccountId Text where
convert = T.pack . show . unAccountId
instance Convert DocumentId Text where
convert = T.pack . show . unDocumentId
instance Convert EnvelopeId Text where
convert = U.toText . unEnvelopeId