{-# LANGUAGE DuplicateRecordFields #-}
{-# LANGUAGE NoFieldSelectors #-}
module Okapi.Record.Result where
import Okapi.Tree (Failure)
import Okapi.HTTP.Request.Method (Method)
import Okapi.HTTP.Request.Path (Path)
import Okapi.HTTP.Request.Query (Query)
import Okapi.HTTP.Request.Headers qualified as Request (Headers)
import Okapi.HTTP.Request.Body qualified as Request (Body)
import Okapi.HTTP.Response.Status (Status)
import Okapi.HTTP.Response.Headers qualified as Response (Headers)
import Okapi.HTTP.Response.Body qualified as Response (Body)
data Request method path query headers body = Request
{ forall method path query headers body.
Request method path query headers body
-> Either (Failure Method) method
method :: Either (Failure Method) method
, forall method path query headers body.
Request method path query headers body
-> Either (Failure Path) path
path :: Either (Failure Path) path
, forall method path query headers body.
Request method path query headers body
-> Either (Failure Query) query
query :: Either (Failure Query) query
, :: Either (Failure Request.Headers) headers
, forall method path query headers body.
Request method path query headers body
-> Either (Failure Body) body
body :: Either (Failure Request.Body) body
}
data Response status headers body = Response
{ forall status headers body.
Response status headers body -> Either (Failure Status) status
status :: Either (Failure Status) status
, :: Either (Failure Response.Headers) headers
, forall status headers body.
Response status headers body -> Either (Failure Body) body
body :: Either (Failure Response.Body) body
}