diff --git a/src/Network/GemServ/Types.hs b/src/Network/GemServ/Types.hs index 75a2a74..d94c274 100644 --- a/src/Network/GemServ/Types.hs +++ b/src/Network/GemServ/Types.hs @@ -25,11 +25,16 @@ License along with this program. If not, see -} module Network.GemServ.Types ( + -- * Types GemURL (..), - newGemURL + GemRequest (..), + -- * Constructors + newGemURL, + newGemRequest ) where import Data.Word (Word32) +import Data.X509 (Certificate) -- | Gemini URL data GemURL = GemURL @@ -43,6 +48,14 @@ data GemURL = GemURL -- ^ The decoded request query (if supplied) } deriving (Eq, Show) +-- | Describes a Gemini request +data GemRequest = GemRequest + { reqURL :: GemURL + -- ^ The URL being requested + , reqCert :: Maybe Certificate + -- ^ The client certificate (if available) + } deriving (Eq, Show) + -- | Builds a new 'GemURL' newGemURL :: String @@ -55,4 +68,14 @@ newGemURL host = GemURL , gemQuery = Nothing } +-- | Builds a 'GemRequest' +newGemRequest + :: GemURL + -- ^ The request URL + -> GemRequest +newGemRequest url = GemRequest + { reqURL = url + , reqCert = Nothing + } + --jl