From d1f26115f67f4e06e8b2311b60eb1195856813cc Mon Sep 17 00:00:00 2001 From: Jonathan Lamothe Date: Thu, 28 Oct 2021 19:18:20 -0400 Subject: [PATCH] implemented GemRequest type and constructor --- src/Network/GemServ/Types.hs | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) 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