module Http.Bodied
  ( Bodied (..)
  ) where

import Data.Bytes.Chunks (Chunks)

-- | An HTTP request or response with a body.
data Bodied a = Bodied
  { forall a. Bodied a -> a
metadata :: !a
  -- ^ The request or response.
  , forall a. Bodied a -> Chunks
body :: !Chunks
  -- ^ The body.
  }
  deriving (Bodied a -> Bodied a -> Bool
(Bodied a -> Bodied a -> Bool)
-> (Bodied a -> Bodied a -> Bool) -> Eq (Bodied a)
forall a. Eq a => Bodied a -> Bodied a -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall a. Eq a => Bodied a -> Bodied a -> Bool
== :: Bodied a -> Bodied a -> Bool
$c/= :: forall a. Eq a => Bodied a -> Bodied a -> Bool
/= :: Bodied a -> Bodied a -> Bool
Eq, Int -> Bodied a -> ShowS
[Bodied a] -> ShowS
Bodied a -> String
(Int -> Bodied a -> ShowS)
-> (Bodied a -> String) -> ([Bodied a] -> ShowS) -> Show (Bodied a)
forall a. Show a => Int -> Bodied a -> ShowS
forall a. Show a => [Bodied a] -> ShowS
forall a. Show a => Bodied a -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall a. Show a => Int -> Bodied a -> ShowS
showsPrec :: Int -> Bodied a -> ShowS
$cshow :: forall a. Show a => Bodied a -> String
show :: Bodied a -> String
$cshowList :: forall a. Show a => [Bodied a] -> ShowS
showList :: [Bodied a] -> ShowS
Show)