]> gitweb @ CieloNegro.org - Lucu.git/commitdiff
Haddock comments
authorPHO <pho@cielonegro.org>
Sun, 6 Nov 2011 22:57:52 +0000 (07:57 +0900)
committerPHO <pho@cielonegro.org>
Sun, 6 Nov 2011 22:57:52 +0000 (07:57 +0900)
Ditz-issue: c566a8433e8af700655680f53e99cfe9f563ed32

Network/HTTP/Lucu.hs
Network/HTTP/Lucu/Response.hs
Network/HTTP/Lucu/StatusCode/Internal.hs

index 3579c5ca632cdc442a2fe7eb85f5d9bf68181555..79ae0613664294801ad5c3289a8f458eafdaa6f4 100644 (file)
@@ -43,7 +43,7 @@ module Network.HTTP.Lucu
     , module Network.HTTP.Lucu.Resource
 
       -- ** Things to be used in the Resource monad
-      -- *** Status Code
+      -- *** 'StatusCode'
     , module Network.HTTP.Lucu.StatusCode
 
       -- *** 'Abortion'
index cfff8197ddbaea7ea17d3d55be11398f8a76c714..0ebfa71080647983d95d428fa6bda605239c1185 100644 (file)
@@ -10,6 +10,7 @@ module Network.HTTP.Lucu.Response
       StatusCode(..)
     , SomeStatusCode(..)
     , Response(..)
+    , statusCodes
     , module Network.HTTP.Lucu.StatusCode
 
       -- * Functions
index 9269c5d07625c3f8f16251519c2a72061d76ab7a..3addcf2abd748ea5125b710b56048ef6c003e6fd 100644 (file)
@@ -28,6 +28,9 @@ import Prelude.Unicode
 
 -- |The type class for HTTP status codes.
 --
+-- Declaring types for each statuses is surely a pain. See:
+-- 'statusCodes'
+--
 -- Minimal complete definition: 'numericCode' and 'textualStatus'.
 class (Eq sc, Show sc, Typeable sc) ⇒ StatusCode sc where
     -- |Return the 3-digit integer for this status e.g. @200@
@@ -42,7 +45,7 @@ class (Eq sc, Show sc, Typeable sc) ⇒ StatusCode sc where
     toStatusCode ∷ SomeStatusCode → Maybe sc
     toStatusCode (SomeStatusCode sc) = cast sc
 
--- |FIXME: doc
+-- |Container type for 'StatusCode' type class.
 data SomeStatusCode
     = ∀sc. StatusCode sc ⇒ SomeStatusCode sc
       deriving Typeable
@@ -50,6 +53,8 @@ data SomeStatusCode
 instance Show SomeStatusCode where
     show (SomeStatusCode sc) = show sc
 
+-- |Two 'StatusCode's @a@ and @b@ are said to be equivalent iff
+-- @'numericCode' a == 'numericCode' b@.
 instance Eq SomeStatusCode where
     (SomeStatusCode α) == (SomeStatusCode β)
         = numericCode α ≡ numericCode β
@@ -60,7 +65,36 @@ instance StatusCode SomeStatusCode where
     fromStatusCode = id
     toStatusCode   = Just
 
--- |FIXME: doc
+-- |'QuasiQuoter' for 'StatusCode' declarations.
+--
+-- Top-level splicing
+--
+-- @
+--   ['statusCodes'|
+--   200 OK
+--   400 Bad Request
+--   405 Method Not Allowed
+--   |]
+-- @
+--
+-- becomes:
+--
+-- @
+--   data OK = OK deriving ('Eq', 'Show', 'Typeable')
+--   instance OK where
+--     'numericCode'   _ = 200
+--     'textualStatus' _ = 'A.unsafeFromString' \"200 OK\"
+--
+--   data BadRequest = BadRequest deriving ('Eq', 'Show', 'Typeable')
+--   instance BadRequest where
+--     'numericCode'   _ = 400
+--     'textualStatus' _ = 'A.unsafeFromString' \"400 Bad Request\"
+--
+--   data MethodNotAllowed = MethodNotAllowed deriving ('Eq', 'Show', 'Typeable')
+--   instance MethodNotAllowed where
+--     'numericCode'   _ = 405
+--     'textualStatus' _ = 'A.unsafeFromString' \"405 Method Not Allowed\"
+-- @
 statusCodes ∷ QuasiQuoter
 statusCodes = QuasiQuoter {
                 quoteExp  = const unsupported