{-# OPTIONS_GHC -Wno-orphans #-}
{-# OPTIONS_GHC -fno-warn-name-shadowing #-}
module Data.OpenApi.Compare.Validate.Responses
( Behave (..),
)
where
import Data.HList
import Data.HashMap.Strict.InsOrd as IOHM
import Data.Map.Strict as M
import Data.Maybe
import Data.OpenApi
import Data.OpenApi.Compare.Behavior
import Data.OpenApi.Compare.References
import Data.OpenApi.Compare.Subtree
import Data.OpenApi.Compare.Validate.Header ()
import Data.OpenApi.Compare.Validate.Link ()
import Data.OpenApi.Compare.Validate.MediaTypeObject
import Data.OpenApi.Compare.Validate.Products
import Data.OpenApi.Compare.Validate.Schema ()
import Data.OpenApi.Compare.Validate.Sums
import qualified Data.Text as T
import Network.HTTP.Media (MediaType)
import Text.Pandoc.Builder
tracedResponses :: Traced Responses -> IOHM.InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
tracedResponses :: Traced Responses
-> InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
tracedResponses Traced Responses
resp =
(HttpStatusCode
-> Referenced Response -> Traced (Referenced Response))
-> InsOrdHashMap HttpStatusCode (Referenced Response)
-> InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
forall k v1 v2.
(k -> v1 -> v2) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2
IOHM.mapWithKey (\HttpStatusCode
k -> Trace (Referenced Response)
-> Referenced Response -> Traced (Referenced Response)
forall a. Trace a -> a -> Traced a
traced (Traced Responses -> Paths Step TraceRoot Responses
forall e (w :: * -> *) a. ComonadEnv e w => w a -> e
ask Traced Responses
resp Paths Step TraceRoot Responses
-> Paths Step Responses (Referenced Response)
-> Trace (Referenced Response)
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> Step Responses (Referenced Response)
-> Paths Step Responses (Referenced Response)
forall k (q :: k -> k -> *) (a :: k) (b :: k).
NiceQuiver q a b =>
q a b -> Paths q a b
step (HttpStatusCode -> Step Responses (Referenced Response)
ResponseCodeStep HttpStatusCode
k))) (InsOrdHashMap HttpStatusCode (Referenced Response)
-> InsOrdHashMap HttpStatusCode (Traced (Referenced Response)))
-> InsOrdHashMap HttpStatusCode (Referenced Response)
-> InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
forall a b. (a -> b) -> a -> b
$
Responses -> InsOrdHashMap HttpStatusCode (Referenced Response)
_responsesResponses (Responses -> InsOrdHashMap HttpStatusCode (Referenced Response))
-> Responses -> InsOrdHashMap HttpStatusCode (Referenced Response)
forall a b. (a -> b) -> a -> b
$ Traced Responses -> Responses
forall (w :: * -> *) a. Comonad w => w a -> a
extract Traced Responses
resp
instance Subtree Responses where
type SubtreeLevel Responses = 'OperationLevel
type
CheckEnv Responses =
'[ ProdCons (Traced (Definitions Response))
, ProdCons (Traced (Definitions Header))
, ProdCons (Traced (Definitions Schema))
, ProdCons (Traced (Definitions Link))
]
checkStructuralCompatibility :: HList (CheckEnv Responses)
-> ProdCons (Traced Responses) -> StructuralCompatFormula ()
checkStructuralCompatibility HList (CheckEnv Responses)
env ProdCons (Traced Responses)
pc = do
HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Maybe (Traced (Referenced Response)))
-> StructuralCompatFormula ()
forall a (xs :: [*]).
(Subtree a, ReassembleHList xs (CheckEnv a)) =>
HList xs
-> ProdCons (Maybe (Traced a)) -> StructuralCompatFormula ()
structuralMaybe HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Responses)
env (ProdCons (Maybe (Traced (Referenced Response)))
-> StructuralCompatFormula ())
-> ProdCons (Maybe (Traced (Referenced Response)))
-> StructuralCompatFormula ()
forall a b. (a -> b) -> a -> b
$ EnvT
(Trace (Referenced Response))
Identity
(Maybe (Referenced Response))
-> Maybe (Traced (Referenced Response))
forall (t :: * -> *) (m :: * -> *) a.
(Traversable t, Monad m) =>
t (m a) -> m (t a)
sequence (EnvT
(Trace (Referenced Response))
Identity
(Maybe (Referenced Response))
-> Maybe (Traced (Referenced Response)))
-> (Traced Responses
-> EnvT
(Trace (Referenced Response))
Identity
(Maybe (Referenced Response)))
-> Traced Responses
-> Maybe (Traced (Referenced Response))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Step Responses (Referenced Response)
-> Traced' Responses (Maybe (Referenced Response))
-> EnvT
(Trace (Referenced Response))
Identity
(Maybe (Referenced Response))
forall a a' b.
Steppable a a' =>
Step a a' -> Traced' a b -> Traced' a' b
stepTraced Step Responses (Referenced Response)
ResponseDefaultStep (Traced' Responses (Maybe (Referenced Response))
-> EnvT
(Trace (Referenced Response))
Identity
(Maybe (Referenced Response)))
-> (Traced Responses
-> Traced' Responses (Maybe (Referenced Response)))
-> Traced Responses
-> EnvT
(Trace (Referenced Response))
Identity
(Maybe (Referenced Response))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Responses -> Maybe (Referenced Response))
-> Traced Responses
-> Traced' Responses (Maybe (Referenced Response))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Responses -> Maybe (Referenced Response)
_responsesDefault (Traced Responses -> Maybe (Traced (Referenced Response)))
-> ProdCons (Traced Responses)
-> ProdCons (Maybe (Traced (Referenced Response)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced Responses)
pc
HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons
(Traced (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> StructuralCompatFormula ()
forall k (xs :: [*]) v.
(ReassembleHList (k : xs) (CheckEnv v), Ord k, Subtree v,
Hashable k, Typeable k, Show k) =>
HList xs
-> ProdCons (Traced (InsOrdHashMap k v))
-> StructuralCompatFormula ()
iohmStructural HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Responses)
env (ProdCons
(Traced (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> StructuralCompatFormula ())
-> ProdCons
(Traced (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> StructuralCompatFormula ()
forall a b. (a -> b) -> a -> b
$ Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Traced'
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Traced (InsOrdHashMap HttpStatusCode (Referenced Response))
forall a a' b.
Steppable a a' =>
Step a a' -> Traced' a b -> Traced' a' b
stepTraced Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
ResponsesStep (Traced'
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Traced (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> (Traced Responses
-> Traced'
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> Traced Responses
-> Traced (InsOrdHashMap HttpStatusCode (Referenced Response))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Responses -> InsOrdHashMap HttpStatusCode (Referenced Response))
-> Traced Responses
-> Traced'
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Responses -> InsOrdHashMap HttpStatusCode (Referenced Response)
_responsesResponses (Traced Responses
-> Traced (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> ProdCons (Traced Responses)
-> ProdCons
(Traced (InsOrdHashMap HttpStatusCode (Referenced Response)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced Responses)
pc
pure ()
checkSemanticCompatibility :: HList (CheckEnv Responses)
-> Behavior (SubtreeLevel Responses)
-> ProdCons (Traced Responses)
-> SemanticCompatFormula ()
checkSemanticCompatibility HList (CheckEnv Responses)
env Behavior (SubtreeLevel Responses)
beh ProdCons (Traced Responses)
prodCons = do
let defs :: ProdCons (Traced (Definitions Response))
defs = HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced (Definitions Response))
forall x (xs :: [*]) (t :: Bool). Has' x xs t => HList xs -> x
getH @(ProdCons (Traced (Definitions Response))) HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Responses)
env
check :: HttpStatusCode
-> ProdCons (Traced Response) -> SemanticCompatFormula ()
check HttpStatusCode
code ProdCons (Traced Response)
resps = Behavior (SubtreeLevel Response)
-> HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced Response)
-> SemanticCompatFormula ()
forall t (xs :: [*]).
(ReassembleHList xs (CheckEnv t), Subtree t) =>
Behavior (SubtreeLevel t)
-> HList xs -> ProdCons (Traced t) -> SemanticCompatFormula ()
checkCompatibility @Response (Paths Behave 'APILevel 'OperationLevel
Behavior (SubtreeLevel Responses)
beh Paths Behave 'APILevel 'OperationLevel
-> Paths Behave 'OperationLevel 'ResponseLevel
-> Paths Behave 'APILevel 'ResponseLevel
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> Behave 'OperationLevel 'ResponseLevel
-> Paths Behave 'OperationLevel 'ResponseLevel
forall k (q :: k -> k -> *) (a :: k) (b :: k).
NiceQuiver q a b =>
q a b -> Paths q a b
step (HttpStatusCode -> Behave 'OperationLevel 'ResponseLevel
WithStatusCode HttpStatusCode
code)) HList
'[ProdCons (Traced (Definitions Response)),
ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Responses)
env ProdCons (Traced Response)
resps
elements :: ProdCons (Map HttpStatusCode (Traced Response))
elements = Traced (Definitions Response)
-> Traced Responses -> Map HttpStatusCode (Traced Response)
getEls (Traced (Definitions Response)
-> Traced Responses -> Map HttpStatusCode (Traced Response))
-> ProdCons (Traced (Definitions Response))
-> ProdCons
(Traced Responses -> Map HttpStatusCode (Traced Response))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced (Definitions Response))
defs ProdCons (Traced Responses -> Map HttpStatusCode (Traced Response))
-> ProdCons (Traced Responses)
-> ProdCons (Map HttpStatusCode (Traced Response))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ProdCons (Traced Responses)
prodCons
getEls :: Traced (Definitions Response)
-> Traced Responses -> Map HttpStatusCode (Traced Response)
getEls Traced (Definitions Response)
respDef Traced Responses
resps = [(HttpStatusCode, Traced Response)]
-> Map HttpStatusCode (Traced Response)
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList ([(HttpStatusCode, Traced Response)]
-> Map HttpStatusCode (Traced Response))
-> [(HttpStatusCode, Traced Response)]
-> Map HttpStatusCode (Traced Response)
forall a b. (a -> b) -> a -> b
$ do
(HttpStatusCode
code, Traced (Referenced Response)
respRef) <- InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
-> [(HttpStatusCode, Traced (Referenced Response))]
forall k v. InsOrdHashMap k v -> [(k, v)]
IOHM.toList (InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
-> [(HttpStatusCode, Traced (Referenced Response))])
-> InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
-> [(HttpStatusCode, Traced (Referenced Response))]
forall a b. (a -> b) -> a -> b
$ Traced Responses
-> InsOrdHashMap HttpStatusCode (Traced (Referenced Response))
tracedResponses Traced Responses
resps
(HttpStatusCode, Traced Response)
-> [(HttpStatusCode, Traced Response)]
forall (f :: * -> *) a. Applicative f => a -> f a
pure (HttpStatusCode
code, Traced (Definitions Response)
-> Traced (Referenced Response) -> Traced Response
forall a.
Typeable a =>
Traced (Definitions a) -> Traced (Referenced a) -> Traced a
dereference Traced (Definitions Response)
respDef Traced (Referenced Response)
respRef)
Paths Behave 'APILevel 'OperationLevel
-> (HttpStatusCode -> Issue 'OperationLevel)
-> (HttpStatusCode
-> ProdCons (Traced Response) -> SemanticCompatFormula ())
-> ProdCons (Map HttpStatusCode (Traced Response))
-> SemanticCompatFormula ()
forall k (l :: BehaviorLevel)
(q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) t.
(Ord k, Issuable l) =>
Paths q r l
-> (k -> Issue l)
-> (k -> ProdCons t -> CompatFormula' q AnIssue r ())
-> ProdCons (Map k t)
-> CompatFormula' q AnIssue r ()
checkSums Paths Behave 'APILevel 'OperationLevel
Behavior (SubtreeLevel Responses)
beh HttpStatusCode -> Issue 'OperationLevel
ConsumerDoesntHaveResponseCode HttpStatusCode
-> ProdCons (Traced Response) -> SemanticCompatFormula ()
check ProdCons (Map HttpStatusCode (Traced Response))
elements
tracedContent :: Traced Response -> IOHM.InsOrdHashMap MediaType (Traced MediaTypeObject)
tracedContent :: Traced Response -> InsOrdHashMap MediaType (Traced MediaTypeObject)
tracedContent Traced Response
resp =
(MediaType -> MediaTypeObject -> Traced MediaTypeObject)
-> InsOrdHashMap MediaType MediaTypeObject
-> InsOrdHashMap MediaType (Traced MediaTypeObject)
forall k v1 v2.
(k -> v1 -> v2) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2
IOHM.mapWithKey (\MediaType
k -> Trace MediaTypeObject -> MediaTypeObject -> Traced MediaTypeObject
forall a. Trace a -> a -> Traced a
traced (Traced Response -> Paths Step TraceRoot Response
forall e (w :: * -> *) a. ComonadEnv e w => w a -> e
ask Traced Response
resp Paths Step TraceRoot Response
-> Paths Step Response MediaTypeObject -> Trace MediaTypeObject
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> Step Response MediaTypeObject
-> Paths Step Response MediaTypeObject
forall k (q :: k -> k -> *) (a :: k) (b :: k).
NiceQuiver q a b =>
q a b -> Paths q a b
step (MediaType -> Step Response MediaTypeObject
ResponseMediaObject MediaType
k))) (InsOrdHashMap MediaType MediaTypeObject
-> InsOrdHashMap MediaType (Traced MediaTypeObject))
-> InsOrdHashMap MediaType MediaTypeObject
-> InsOrdHashMap MediaType (Traced MediaTypeObject)
forall a b. (a -> b) -> a -> b
$
Response -> InsOrdHashMap MediaType MediaTypeObject
_responseContent (Response -> InsOrdHashMap MediaType MediaTypeObject)
-> Response -> InsOrdHashMap MediaType MediaTypeObject
forall a b. (a -> b) -> a -> b
$ Traced Response -> Response
forall (w :: * -> *) a. Comonad w => w a -> a
extract Traced Response
resp
tracedHeaders :: Traced Response -> IOHM.InsOrdHashMap HeaderName (Traced (Referenced Header))
Traced Response
resp =
(HeaderName -> Referenced Header -> Traced (Referenced Header))
-> InsOrdHashMap HeaderName (Referenced Header)
-> InsOrdHashMap HeaderName (Traced (Referenced Header))
forall k v1 v2.
(k -> v1 -> v2) -> InsOrdHashMap k v1 -> InsOrdHashMap k v2
IOHM.mapWithKey (\HeaderName
k -> Trace (Referenced Header)
-> Referenced Header -> Traced (Referenced Header)
forall a. Trace a -> a -> Traced a
traced (Traced Response -> Paths Step TraceRoot Response
forall e (w :: * -> *) a. ComonadEnv e w => w a -> e
ask Traced Response
resp Paths Step TraceRoot Response
-> Paths Step Response (Referenced Header)
-> Trace (Referenced Header)
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> Step Response (Referenced Header)
-> Paths Step Response (Referenced Header)
forall k (q :: k -> k -> *) (a :: k) (b :: k).
NiceQuiver q a b =>
q a b -> Paths q a b
step (HeaderName -> Step Response (Referenced Header)
ResponseHeader HeaderName
k))) (InsOrdHashMap HeaderName (Referenced Header)
-> InsOrdHashMap HeaderName (Traced (Referenced Header)))
-> InsOrdHashMap HeaderName (Referenced Header)
-> InsOrdHashMap HeaderName (Traced (Referenced Header))
forall a b. (a -> b) -> a -> b
$
Response -> InsOrdHashMap HeaderName (Referenced Header)
_responseHeaders (Response -> InsOrdHashMap HeaderName (Referenced Header))
-> Response -> InsOrdHashMap HeaderName (Referenced Header)
forall a b. (a -> b) -> a -> b
$ Traced Response -> Response
forall (w :: * -> *) a. Comonad w => w a -> a
extract Traced Response
resp
instance Issuable 'ResponseLevel where
data Issue 'ResponseLevel
= ConsumerDoesntHaveMediaType MediaType
| HeaderName
deriving stock (Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
(Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool)
-> (Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool)
-> Eq (Issue 'ResponseLevel)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
$c/= :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
== :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
$c== :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
Eq, Eq (Issue 'ResponseLevel)
Eq (Issue 'ResponseLevel)
-> (Issue 'ResponseLevel -> Issue 'ResponseLevel -> Ordering)
-> (Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool)
-> (Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool)
-> (Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool)
-> (Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool)
-> (Issue 'ResponseLevel
-> Issue 'ResponseLevel -> Issue 'ResponseLevel)
-> (Issue 'ResponseLevel
-> Issue 'ResponseLevel -> Issue 'ResponseLevel)
-> Ord (Issue 'ResponseLevel)
Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
Issue 'ResponseLevel -> Issue 'ResponseLevel -> Ordering
Issue 'ResponseLevel
-> Issue 'ResponseLevel -> Issue 'ResponseLevel
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Issue 'ResponseLevel
-> Issue 'ResponseLevel -> Issue 'ResponseLevel
$cmin :: Issue 'ResponseLevel
-> Issue 'ResponseLevel -> Issue 'ResponseLevel
max :: Issue 'ResponseLevel
-> Issue 'ResponseLevel -> Issue 'ResponseLevel
$cmax :: Issue 'ResponseLevel
-> Issue 'ResponseLevel -> Issue 'ResponseLevel
>= :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
$c>= :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
> :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
$c> :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
<= :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
$c<= :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
< :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
$c< :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Bool
compare :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Ordering
$ccompare :: Issue 'ResponseLevel -> Issue 'ResponseLevel -> Ordering
$cp1Ord :: Eq (Issue 'ResponseLevel)
Ord, HttpStatusCode -> Issue 'ResponseLevel -> ShowS
[Issue 'ResponseLevel] -> ShowS
Issue 'ResponseLevel -> String
(HttpStatusCode -> Issue 'ResponseLevel -> ShowS)
-> (Issue 'ResponseLevel -> String)
-> ([Issue 'ResponseLevel] -> ShowS)
-> Show (Issue 'ResponseLevel)
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Issue 'ResponseLevel] -> ShowS
$cshowList :: [Issue 'ResponseLevel] -> ShowS
show :: Issue 'ResponseLevel -> String
$cshow :: Issue 'ResponseLevel -> String
showsPrec :: HttpStatusCode -> Issue 'ResponseLevel -> ShowS
$cshowsPrec :: HttpStatusCode -> Issue 'ResponseLevel -> ShowS
Show)
issueKind :: Issue 'ResponseLevel -> IssueKind
issueKind = \case
Issue 'ResponseLevel
_ -> IssueKind
CertainIssue
describeIssue :: Orientation -> Issue 'ResponseLevel -> Blocks
describeIssue Orientation
Forward (ConsumerDoesntHaveMediaType t) =
Inlines -> Blocks
para (Inlines -> Blocks) -> Inlines -> Blocks
forall a b. (a -> b) -> a -> b
$ Inlines
"Media type was removed: " Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> (HeaderName -> Inlines
code (HeaderName -> Inlines)
-> (MediaType -> HeaderName) -> MediaType -> Inlines
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> HeaderName
T.pack (String -> HeaderName)
-> (MediaType -> String) -> MediaType -> HeaderName
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MediaType -> String
forall a. Show a => a -> String
show (MediaType -> Inlines) -> MediaType -> Inlines
forall a b. (a -> b) -> a -> b
$ MediaType
t) Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> Inlines
"."
describeIssue Orientation
Backward (ConsumerDoesntHaveMediaType t) =
Inlines -> Blocks
para (Inlines -> Blocks) -> Inlines -> Blocks
forall a b. (a -> b) -> a -> b
$ Inlines
"Media type was added: " Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> (HeaderName -> Inlines
code (HeaderName -> Inlines)
-> (MediaType -> HeaderName) -> MediaType -> Inlines
forall b c a. (b -> c) -> (a -> b) -> a -> c
. String -> HeaderName
T.pack (String -> HeaderName)
-> (MediaType -> String) -> MediaType -> HeaderName
forall b c a. (b -> c) -> (a -> b) -> a -> c
. MediaType -> String
forall a. Show a => a -> String
show (MediaType -> Inlines) -> MediaType -> Inlines
forall a b. (a -> b) -> a -> b
$ MediaType
t) Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> Inlines
"."
describeIssue Orientation
Forward (ProducerDoesntHaveResponseHeader h) =
Inlines -> Blocks
para (Inlines -> Blocks) -> Inlines -> Blocks
forall a b. (a -> b) -> a -> b
$ Inlines
"New header was added " Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> HeaderName -> Inlines
code HeaderName
h Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> Inlines
"."
describeIssue Orientation
Backward (ProducerDoesntHaveResponseHeader h) =
Inlines -> Blocks
para (Inlines -> Blocks) -> Inlines -> Blocks
forall a b. (a -> b) -> a -> b
$ Inlines
"Header was removed " Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> HeaderName -> Inlines
code HeaderName
h Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> Inlines
"."
instance Behavable 'ResponseLevel 'PayloadLevel where
data Behave 'ResponseLevel 'PayloadLevel
= ResponsePayload
deriving stock (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
(Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool)
-> Eq (Behave 'ResponseLevel 'PayloadLevel)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
$c/= :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
== :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
$c== :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
Eq, Eq (Behave 'ResponseLevel 'PayloadLevel)
Eq (Behave 'ResponseLevel 'PayloadLevel)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Ordering)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel)
-> (Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel)
-> Ord (Behave 'ResponseLevel 'PayloadLevel)
Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Ordering
Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
$cmin :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
max :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
$cmax :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel
>= :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
$c>= :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
> :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
$c> :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
<= :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
$c<= :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
< :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
$c< :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Bool
compare :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Ordering
$ccompare :: Behave 'ResponseLevel 'PayloadLevel
-> Behave 'ResponseLevel 'PayloadLevel -> Ordering
$cp1Ord :: Eq (Behave 'ResponseLevel 'PayloadLevel)
Ord, HttpStatusCode -> Behave 'ResponseLevel 'PayloadLevel -> ShowS
[Behave 'ResponseLevel 'PayloadLevel] -> ShowS
Behave 'ResponseLevel 'PayloadLevel -> String
(HttpStatusCode -> Behave 'ResponseLevel 'PayloadLevel -> ShowS)
-> (Behave 'ResponseLevel 'PayloadLevel -> String)
-> ([Behave 'ResponseLevel 'PayloadLevel] -> ShowS)
-> Show (Behave 'ResponseLevel 'PayloadLevel)
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Behave 'ResponseLevel 'PayloadLevel] -> ShowS
$cshowList :: [Behave 'ResponseLevel 'PayloadLevel] -> ShowS
show :: Behave 'ResponseLevel 'PayloadLevel -> String
$cshow :: Behave 'ResponseLevel 'PayloadLevel -> String
showsPrec :: HttpStatusCode -> Behave 'ResponseLevel 'PayloadLevel -> ShowS
$cshowsPrec :: HttpStatusCode -> Behave 'ResponseLevel 'PayloadLevel -> ShowS
Show)
describeBehavior :: Behave 'ResponseLevel 'PayloadLevel -> Inlines
describeBehavior Behave 'ResponseLevel 'PayloadLevel
ResponsePayload = Inlines
"Payload"
instance Behavable 'ResponseLevel 'HeaderLevel where
data Behave 'ResponseLevel 'HeaderLevel
= HeaderName
deriving stock (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
(Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool)
-> Eq (Behave 'ResponseLevel 'HeaderLevel)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
$c/= :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
== :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
$c== :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
Eq, Eq (Behave 'ResponseLevel 'HeaderLevel)
Eq (Behave 'ResponseLevel 'HeaderLevel)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Ordering)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel)
-> (Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel)
-> Ord (Behave 'ResponseLevel 'HeaderLevel)
Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Ordering
Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
$cmin :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
max :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
$cmax :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel
>= :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
$c>= :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
> :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
$c> :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
<= :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
$c<= :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
< :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
$c< :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Bool
compare :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Ordering
$ccompare :: Behave 'ResponseLevel 'HeaderLevel
-> Behave 'ResponseLevel 'HeaderLevel -> Ordering
$cp1Ord :: Eq (Behave 'ResponseLevel 'HeaderLevel)
Ord, HttpStatusCode -> Behave 'ResponseLevel 'HeaderLevel -> ShowS
[Behave 'ResponseLevel 'HeaderLevel] -> ShowS
Behave 'ResponseLevel 'HeaderLevel -> String
(HttpStatusCode -> Behave 'ResponseLevel 'HeaderLevel -> ShowS)
-> (Behave 'ResponseLevel 'HeaderLevel -> String)
-> ([Behave 'ResponseLevel 'HeaderLevel] -> ShowS)
-> Show (Behave 'ResponseLevel 'HeaderLevel)
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Behave 'ResponseLevel 'HeaderLevel] -> ShowS
$cshowList :: [Behave 'ResponseLevel 'HeaderLevel] -> ShowS
show :: Behave 'ResponseLevel 'HeaderLevel -> String
$cshow :: Behave 'ResponseLevel 'HeaderLevel -> String
showsPrec :: HttpStatusCode -> Behave 'ResponseLevel 'HeaderLevel -> ShowS
$cshowsPrec :: HttpStatusCode -> Behave 'ResponseLevel 'HeaderLevel -> ShowS
Show)
describeBehavior :: Behave 'ResponseLevel 'HeaderLevel -> Inlines
describeBehavior (InHeader name) = Inlines
"Header " Inlines -> Inlines -> Inlines
forall a. Semigroup a => a -> a -> a
<> HeaderName -> Inlines
code HeaderName
name
instance Subtree Response where
type SubtreeLevel Response = 'ResponseLevel
type
CheckEnv Response =
'[ ProdCons (Traced (Definitions Header))
, ProdCons (Traced (Definitions Schema))
, ProdCons (Traced (Definitions Link))
]
checkStructuralCompatibility :: HList (CheckEnv Response)
-> ProdCons (Traced Response) -> StructuralCompatFormula ()
checkStructuralCompatibility HList (CheckEnv Response)
env ProdCons (Traced Response)
pc = do
HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced (InsOrdHashMap MediaType MediaTypeObject))
-> StructuralCompatFormula ()
forall k (xs :: [*]) v.
(ReassembleHList (k : xs) (CheckEnv v), Ord k, Subtree v,
Hashable k, Typeable k, Show k) =>
HList xs
-> ProdCons (Traced (InsOrdHashMap k v))
-> StructuralCompatFormula ()
iohmStructural HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Response)
env (ProdCons (Traced (InsOrdHashMap MediaType MediaTypeObject))
-> StructuralCompatFormula ())
-> ProdCons (Traced (InsOrdHashMap MediaType MediaTypeObject))
-> StructuralCompatFormula ()
forall a b. (a -> b) -> a -> b
$ Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Traced' Response (InsOrdHashMap MediaType MediaTypeObject)
-> Traced (InsOrdHashMap MediaType MediaTypeObject)
forall a a' b.
Steppable a a' =>
Step a a' -> Traced' a b -> Traced' a' b
stepTraced Step Response (InsOrdHashMap MediaType MediaTypeObject)
ResponseMediaObjects (Traced' Response (InsOrdHashMap MediaType MediaTypeObject)
-> Traced (InsOrdHashMap MediaType MediaTypeObject))
-> (Traced Response
-> Traced' Response (InsOrdHashMap MediaType MediaTypeObject))
-> Traced Response
-> Traced (InsOrdHashMap MediaType MediaTypeObject)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Response -> InsOrdHashMap MediaType MediaTypeObject)
-> Traced Response
-> Traced' Response (InsOrdHashMap MediaType MediaTypeObject)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Response -> InsOrdHashMap MediaType MediaTypeObject
_responseContent (Traced Response
-> Traced (InsOrdHashMap MediaType MediaTypeObject))
-> ProdCons (Traced Response)
-> ProdCons (Traced (InsOrdHashMap MediaType MediaTypeObject))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced Response)
pc
HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Header)))
-> StructuralCompatFormula ()
forall k (xs :: [*]) v.
(ReassembleHList (k : xs) (CheckEnv v), Ord k, Subtree v,
Hashable k, Typeable k, Show k) =>
HList xs
-> ProdCons (Traced (InsOrdHashMap k v))
-> StructuralCompatFormula ()
iohmStructural HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Response)
env (ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Header)))
-> StructuralCompatFormula ())
-> ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Header)))
-> StructuralCompatFormula ()
forall a b. (a -> b) -> a -> b
$ Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Traced' Response (InsOrdHashMap HeaderName (Referenced Header))
-> Traced (InsOrdHashMap HeaderName (Referenced Header))
forall a a' b.
Steppable a a' =>
Step a a' -> Traced' a b -> Traced' a' b
stepTraced Step Response (InsOrdHashMap HeaderName (Referenced Header))
ResponseHeaders (Traced' Response (InsOrdHashMap HeaderName (Referenced Header))
-> Traced (InsOrdHashMap HeaderName (Referenced Header)))
-> (Traced Response
-> Traced' Response (InsOrdHashMap HeaderName (Referenced Header)))
-> Traced Response
-> Traced (InsOrdHashMap HeaderName (Referenced Header))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Response -> InsOrdHashMap HeaderName (Referenced Header))
-> Traced Response
-> Traced' Response (InsOrdHashMap HeaderName (Referenced Header))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Response -> InsOrdHashMap HeaderName (Referenced Header)
_responseHeaders (Traced Response
-> Traced (InsOrdHashMap HeaderName (Referenced Header)))
-> ProdCons (Traced Response)
-> ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Header)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced Response)
pc
HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Link)))
-> StructuralCompatFormula ()
forall k (xs :: [*]) v.
(ReassembleHList (k : xs) (CheckEnv v), Ord k, Subtree v,
Hashable k, Typeable k, Show k) =>
HList xs
-> ProdCons (Traced (InsOrdHashMap k v))
-> StructuralCompatFormula ()
iohmStructural HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Response)
env (ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Link)))
-> StructuralCompatFormula ())
-> ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Link)))
-> StructuralCompatFormula ()
forall a b. (a -> b) -> a -> b
$ Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Traced' Response (InsOrdHashMap HeaderName (Referenced Link))
-> Traced (InsOrdHashMap HeaderName (Referenced Link))
forall a a' b.
Steppable a a' =>
Step a a' -> Traced' a b -> Traced' a' b
stepTraced Step Response (InsOrdHashMap HeaderName (Referenced Link))
ResponseLinks (Traced' Response (InsOrdHashMap HeaderName (Referenced Link))
-> Traced (InsOrdHashMap HeaderName (Referenced Link)))
-> (Traced Response
-> Traced' Response (InsOrdHashMap HeaderName (Referenced Link)))
-> Traced Response
-> Traced (InsOrdHashMap HeaderName (Referenced Link))
forall b c a. (b -> c) -> (a -> b) -> a -> c
. (Response -> InsOrdHashMap HeaderName (Referenced Link))
-> Traced Response
-> Traced' Response (InsOrdHashMap HeaderName (Referenced Link))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Response -> InsOrdHashMap HeaderName (Referenced Link)
_responseLinks (Traced Response
-> Traced (InsOrdHashMap HeaderName (Referenced Link)))
-> ProdCons (Traced Response)
-> ProdCons (Traced (InsOrdHashMap HeaderName (Referenced Link)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced Response)
pc
pure ()
checkSemanticCompatibility :: HList (CheckEnv Response)
-> Behavior (SubtreeLevel Response)
-> ProdCons (Traced Response)
-> SemanticCompatFormula ()
checkSemanticCompatibility HList (CheckEnv Response)
env Behavior (SubtreeLevel Response)
beh ProdCons (Traced Response)
prodCons = do
SemanticCompatFormula ()
checkMediaTypes
SemanticCompatFormula ()
checkHeaders
pure ()
where
checkMediaTypes :: SemanticCompatFormula ()
checkMediaTypes = do
let check :: MediaType
-> ProdCons (Traced MediaTypeObject) -> SemanticCompatFormula ()
check MediaType
mediaType ProdCons (Traced MediaTypeObject)
mtObj =
let mtEnv :: HList
'[MediaType, ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
mtEnv = MediaType
-> HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> HList
'[MediaType, ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
forall x (xs :: [*]). x -> HList xs -> HList (x : xs)
HCons MediaType
mediaType HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Response)
env
in Behavior (SubtreeLevel MediaTypeObject)
-> HList
'[MediaType, ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced MediaTypeObject)
-> SemanticCompatFormula ()
forall t (xs :: [*]).
(ReassembleHList xs (CheckEnv t), Subtree t) =>
Behavior (SubtreeLevel t)
-> HList xs -> ProdCons (Traced t) -> SemanticCompatFormula ()
checkCompatibility @MediaTypeObject (Paths Behave 'APILevel 'ResponseLevel
Behavior (SubtreeLevel Response)
beh Paths Behave 'APILevel 'ResponseLevel
-> Paths Behave 'ResponseLevel 'PayloadLevel
-> Paths Behave 'APILevel 'PayloadLevel
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> Behave 'ResponseLevel 'PayloadLevel
-> Paths Behave 'ResponseLevel 'PayloadLevel
forall k (q :: k -> k -> *) (a :: k) (b :: k).
NiceQuiver q a b =>
q a b -> Paths q a b
step Behave 'ResponseLevel 'PayloadLevel
ResponsePayload) HList
'[MediaType, ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
mtEnv ProdCons (Traced MediaTypeObject)
mtObj
elements :: ProdCons (Map MediaType (Traced MediaTypeObject))
elements = Traced Response -> Map MediaType (Traced MediaTypeObject)
getEls (Traced Response -> Map MediaType (Traced MediaTypeObject))
-> ProdCons (Traced Response)
-> ProdCons (Map MediaType (Traced MediaTypeObject))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced Response)
prodCons
getEls :: Traced Response -> Map MediaType (Traced MediaTypeObject)
getEls Traced Response
resp = [(MediaType, Traced MediaTypeObject)]
-> Map MediaType (Traced MediaTypeObject)
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList ([(MediaType, Traced MediaTypeObject)]
-> Map MediaType (Traced MediaTypeObject))
-> (InsOrdHashMap MediaType (Traced MediaTypeObject)
-> [(MediaType, Traced MediaTypeObject)])
-> InsOrdHashMap MediaType (Traced MediaTypeObject)
-> Map MediaType (Traced MediaTypeObject)
forall b c a. (b -> c) -> (a -> b) -> a -> c
. InsOrdHashMap MediaType (Traced MediaTypeObject)
-> [(MediaType, Traced MediaTypeObject)]
forall k v. InsOrdHashMap k v -> [(k, v)]
IOHM.toList (InsOrdHashMap MediaType (Traced MediaTypeObject)
-> Map MediaType (Traced MediaTypeObject))
-> InsOrdHashMap MediaType (Traced MediaTypeObject)
-> Map MediaType (Traced MediaTypeObject)
forall a b. (a -> b) -> a -> b
$ Traced Response -> InsOrdHashMap MediaType (Traced MediaTypeObject)
tracedContent Traced Response
resp
Paths Behave 'APILevel 'ResponseLevel
-> (MediaType -> Issue 'ResponseLevel)
-> (MediaType
-> ProdCons (Traced MediaTypeObject) -> SemanticCompatFormula ())
-> ProdCons (Map MediaType (Traced MediaTypeObject))
-> SemanticCompatFormula ()
forall k (l :: BehaviorLevel)
(q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) t.
(Ord k, Issuable l) =>
Paths q r l
-> (k -> Issue l)
-> (k -> ProdCons t -> CompatFormula' q AnIssue r ())
-> ProdCons (Map k t)
-> CompatFormula' q AnIssue r ()
checkSums Paths Behave 'APILevel 'ResponseLevel
Behavior (SubtreeLevel Response)
beh MediaType -> Issue 'ResponseLevel
ConsumerDoesntHaveMediaType MediaType
-> ProdCons (Traced MediaTypeObject) -> SemanticCompatFormula ()
check ProdCons (Map MediaType (Traced MediaTypeObject))
elements
checkHeaders :: SemanticCompatFormula ()
checkHeaders = do
let check :: HeaderName -> ProdCons (Traced Header) -> SemanticCompatFormula ()
check HeaderName
name ProdCons (Traced Header)
hdrs = Behavior (SubtreeLevel Header)
-> HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced Header)
-> SemanticCompatFormula ()
forall t (xs :: [*]).
(ReassembleHList xs (CheckEnv t), Subtree t) =>
Behavior (SubtreeLevel t)
-> HList xs -> ProdCons (Traced t) -> SemanticCompatFormula ()
checkCompatibility @Header (Paths Behave 'APILevel 'ResponseLevel
Behavior (SubtreeLevel Response)
beh Paths Behave 'APILevel 'ResponseLevel
-> Paths Behave 'ResponseLevel 'HeaderLevel
-> Paths Behave 'APILevel 'HeaderLevel
forall k (cat :: k -> k -> *) (a :: k) (b :: k) (c :: k).
Category cat =>
cat a b -> cat b c -> cat a c
>>> Behave 'ResponseLevel 'HeaderLevel
-> Paths Behave 'ResponseLevel 'HeaderLevel
forall k (q :: k -> k -> *) (a :: k) (b :: k).
NiceQuiver q a b =>
q a b -> Paths q a b
step (HeaderName -> Behave 'ResponseLevel 'HeaderLevel
InHeader HeaderName
name)) HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Response)
env ProdCons (Traced Header)
hdrs
elements :: ProdCons (Map HeaderName (ProductLike (Traced Header)))
elements = Traced (Definitions Header)
-> Traced Response -> Map HeaderName (ProductLike (Traced Header))
getEls (Traced (Definitions Header)
-> Traced Response -> Map HeaderName (ProductLike (Traced Header)))
-> ProdCons (Traced (Definitions Header))
-> ProdCons
(Traced Response -> Map HeaderName (ProductLike (Traced Header)))
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ProdCons (Traced (Definitions Header))
headerDefs ProdCons
(Traced Response -> Map HeaderName (ProductLike (Traced Header)))
-> ProdCons (Traced Response)
-> ProdCons (Map HeaderName (ProductLike (Traced Header)))
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ProdCons (Traced Response)
prodCons
getEls :: Traced (Definitions Header)
-> Traced Response -> Map HeaderName (ProductLike (Traced Header))
getEls Traced (Definitions Header)
headerDef Traced Response
resp = [(HeaderName, ProductLike (Traced Header))]
-> Map HeaderName (ProductLike (Traced Header))
forall k a. Ord k => [(k, a)] -> Map k a
M.fromList ([(HeaderName, ProductLike (Traced Header))]
-> Map HeaderName (ProductLike (Traced Header)))
-> [(HeaderName, ProductLike (Traced Header))]
-> Map HeaderName (ProductLike (Traced Header))
forall a b. (a -> b) -> a -> b
$ do
(HeaderName
hname, Traced (Referenced Header)
headerRef) <- InsOrdHashMap HeaderName (Traced (Referenced Header))
-> [(HeaderName, Traced (Referenced Header))]
forall k v. InsOrdHashMap k v -> [(k, v)]
IOHM.toList (InsOrdHashMap HeaderName (Traced (Referenced Header))
-> [(HeaderName, Traced (Referenced Header))])
-> InsOrdHashMap HeaderName (Traced (Referenced Header))
-> [(HeaderName, Traced (Referenced Header))]
forall a b. (a -> b) -> a -> b
$ Traced Response
-> InsOrdHashMap HeaderName (Traced (Referenced Header))
tracedHeaders Traced Response
resp
let header :: Traced Header
header = Traced (Definitions Header)
-> Traced (Referenced Header) -> Traced Header
forall a.
Typeable a =>
Traced (Definitions a) -> Traced (Referenced a) -> Traced a
dereference Traced (Definitions Header)
headerDef Traced (Referenced Header)
headerRef
(HeaderName, ProductLike (Traced Header))
-> [(HeaderName, ProductLike (Traced Header))]
forall (f :: * -> *) a. Applicative f => a -> f a
pure
( HeaderName
hname
, ProductLike :: forall a. a -> Bool -> ProductLike a
ProductLike
{ $sel:productValue:ProductLike :: Traced Header
productValue = Traced Header
header
, $sel:required:ProductLike :: Bool
required = Bool -> Maybe Bool -> Bool
forall a. a -> Maybe a -> a
fromMaybe Bool
False (Maybe Bool -> Bool)
-> (Traced Header -> Maybe Bool) -> Traced Header -> Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Header -> Maybe Bool
_headerRequired (Header -> Maybe Bool)
-> (Traced Header -> Header) -> Traced Header -> Maybe Bool
forall b c a. (b -> c) -> (a -> b) -> a -> c
. Traced Header -> Header
forall (w :: * -> *) a. Comonad w => w a -> a
extract (Traced Header -> Bool) -> Traced Header -> Bool
forall a b. (a -> b) -> a -> b
$ Traced Header
header
}
)
Paths Behave 'APILevel 'ResponseLevel
-> (HeaderName -> Issue 'ResponseLevel)
-> (HeaderName
-> ProdCons (Traced Header) -> SemanticCompatFormula ())
-> ProdCons (Map HeaderName (ProductLike (Traced Header)))
-> SemanticCompatFormula ()
forall k (l :: BehaviorLevel)
(q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) t.
(Ord k, Issuable l) =>
Paths q r l
-> (k -> Issue l)
-> (k -> ProdCons t -> CompatFormula' q AnIssue r ())
-> ProdCons (Map k (ProductLike t))
-> CompatFormula' q AnIssue r ()
checkProducts Paths Behave 'APILevel 'ResponseLevel
Behavior (SubtreeLevel Response)
beh HeaderName -> Issue 'ResponseLevel
ProducerDoesntHaveResponseHeader HeaderName -> ProdCons (Traced Header) -> SemanticCompatFormula ()
check ProdCons (Map HeaderName (ProductLike (Traced Header)))
elements
headerDefs :: ProdCons (Traced (Definitions Header))
headerDefs = HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
-> ProdCons (Traced (Definitions Header))
forall x (xs :: [*]) (t :: Bool). Has' x xs t => HList xs -> x
getH @(ProdCons (Traced (Definitions Header))) HList
'[ProdCons (Traced (Definitions Header)),
ProdCons (Traced (Definitions Schema)),
ProdCons (Traced (Definitions Link))]
HList (CheckEnv Response)
env
instance Steppable Responses (Referenced Response) where
data Step Responses (Referenced Response)
= ResponseCodeStep HttpStatusCode
| ResponseDefaultStep
deriving stock (Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
(Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool)
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool)
-> Eq (Step Responses (Referenced Response))
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
$c/= :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
== :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
$c== :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
Eq, Eq (Step Responses (Referenced Response))
Eq (Step Responses (Referenced Response))
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Ordering)
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool)
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool)
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool)
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool)
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
-> Step Responses (Referenced Response))
-> (Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
-> Step Responses (Referenced Response))
-> Ord (Step Responses (Referenced Response))
Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Ordering
Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
$cmin :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
max :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
$cmax :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
-> Step Responses (Referenced Response)
>= :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
$c>= :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
> :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
$c> :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
<= :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
$c<= :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
< :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
$c< :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Bool
compare :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Ordering
$ccompare :: Step Responses (Referenced Response)
-> Step Responses (Referenced Response) -> Ordering
$cp1Ord :: Eq (Step Responses (Referenced Response))
Ord, HttpStatusCode -> Step Responses (Referenced Response) -> ShowS
[Step Responses (Referenced Response)] -> ShowS
Step Responses (Referenced Response) -> String
(HttpStatusCode -> Step Responses (Referenced Response) -> ShowS)
-> (Step Responses (Referenced Response) -> String)
-> ([Step Responses (Referenced Response)] -> ShowS)
-> Show (Step Responses (Referenced Response))
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step Responses (Referenced Response)] -> ShowS
$cshowList :: [Step Responses (Referenced Response)] -> ShowS
show :: Step Responses (Referenced Response) -> String
$cshow :: Step Responses (Referenced Response) -> String
showsPrec :: HttpStatusCode -> Step Responses (Referenced Response) -> ShowS
$cshowsPrec :: HttpStatusCode -> Step Responses (Referenced Response) -> ShowS
Show)
instance Steppable Response MediaTypeObject where
data Step Response MediaTypeObject = ResponseMediaObject MediaType
deriving stock (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
(Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool)
-> Eq (Step Response MediaTypeObject)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
$c/= :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
== :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
$c== :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
Eq, Eq (Step Response MediaTypeObject)
Eq (Step Response MediaTypeObject)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Ordering)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Step Response MediaTypeObject)
-> (Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Step Response MediaTypeObject)
-> Ord (Step Response MediaTypeObject)
Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Ordering
Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Step Response MediaTypeObject
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Step Response MediaTypeObject
$cmin :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Step Response MediaTypeObject
max :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Step Response MediaTypeObject
$cmax :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Step Response MediaTypeObject
>= :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
$c>= :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
> :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
$c> :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
<= :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
$c<= :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
< :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
$c< :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Bool
compare :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Ordering
$ccompare :: Step Response MediaTypeObject
-> Step Response MediaTypeObject -> Ordering
$cp1Ord :: Eq (Step Response MediaTypeObject)
Ord, HttpStatusCode -> Step Response MediaTypeObject -> ShowS
[Step Response MediaTypeObject] -> ShowS
Step Response MediaTypeObject -> String
(HttpStatusCode -> Step Response MediaTypeObject -> ShowS)
-> (Step Response MediaTypeObject -> String)
-> ([Step Response MediaTypeObject] -> ShowS)
-> Show (Step Response MediaTypeObject)
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step Response MediaTypeObject] -> ShowS
$cshowList :: [Step Response MediaTypeObject] -> ShowS
show :: Step Response MediaTypeObject -> String
$cshow :: Step Response MediaTypeObject -> String
showsPrec :: HttpStatusCode -> Step Response MediaTypeObject -> ShowS
$cshowsPrec :: HttpStatusCode -> Step Response MediaTypeObject -> ShowS
Show)
instance Steppable Response (IOHM.InsOrdHashMap MediaType MediaTypeObject) where
data Step Response (IOHM.InsOrdHashMap MediaType MediaTypeObject) = ResponseMediaObjects
deriving stock (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
(Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool)
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool)
-> Eq (Step Response (InsOrdHashMap MediaType MediaTypeObject))
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
$c/= :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
== :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
$c== :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
Eq, Eq (Step Response (InsOrdHashMap MediaType MediaTypeObject))
Eq (Step Response (InsOrdHashMap MediaType MediaTypeObject))
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Ordering)
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool)
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool)
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool)
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool)
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject))
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject))
-> Ord (Step Response (InsOrdHashMap MediaType MediaTypeObject))
Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Ordering
Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
$cmin :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
max :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
$cmax :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
>= :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
$c>= :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
> :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
$c> :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
<= :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
$c<= :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
< :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
$c< :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> Bool
compare :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Ordering
$ccompare :: Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> Ordering
$cp1Ord :: Eq (Step Response (InsOrdHashMap MediaType MediaTypeObject))
Ord, HttpStatusCode
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> ShowS
[Step Response (InsOrdHashMap MediaType MediaTypeObject)] -> ShowS
Step Response (InsOrdHashMap MediaType MediaTypeObject) -> String
(HttpStatusCode
-> Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> ShowS)
-> (Step Response (InsOrdHashMap MediaType MediaTypeObject)
-> String)
-> ([Step Response (InsOrdHashMap MediaType MediaTypeObject)]
-> ShowS)
-> Show (Step Response (InsOrdHashMap MediaType MediaTypeObject))
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step Response (InsOrdHashMap MediaType MediaTypeObject)] -> ShowS
$cshowList :: [Step Response (InsOrdHashMap MediaType MediaTypeObject)] -> ShowS
show :: Step Response (InsOrdHashMap MediaType MediaTypeObject) -> String
$cshow :: Step Response (InsOrdHashMap MediaType MediaTypeObject) -> String
showsPrec :: HttpStatusCode
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> ShowS
$cshowsPrec :: HttpStatusCode
-> Step Response (InsOrdHashMap MediaType MediaTypeObject) -> ShowS
Show)
instance Steppable Response (Definitions (Referenced Header)) where
data Step Response (Definitions (Referenced Header)) =
deriving stock (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
(Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool)
-> Eq
(Step Response (InsOrdHashMap HeaderName (Referenced Header)))
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
$c/= :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
== :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
$c== :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
Eq, Eq (Step Response (InsOrdHashMap HeaderName (Referenced Header)))
Eq (Step Response (InsOrdHashMap HeaderName (Referenced Header)))
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Ordering)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header)))
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header)))
-> Ord
(Step Response (InsOrdHashMap HeaderName (Referenced Header)))
Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Ordering
Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
$cmin :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
max :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
$cmax :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
>= :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
$c>= :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
> :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
$c> :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
<= :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
$c<= :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
< :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
$c< :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Bool
compare :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Ordering
$ccompare :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> Ordering
$cp1Ord :: Eq (Step Response (InsOrdHashMap HeaderName (Referenced Header)))
Ord, HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> ShowS
[Step Response (InsOrdHashMap HeaderName (Referenced Header))]
-> ShowS
Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> String
(HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> ShowS)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> String)
-> ([Step Response (InsOrdHashMap HeaderName (Referenced Header))]
-> ShowS)
-> Show
(Step Response (InsOrdHashMap HeaderName (Referenced Header)))
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step Response (InsOrdHashMap HeaderName (Referenced Header))]
-> ShowS
$cshowList :: [Step Response (InsOrdHashMap HeaderName (Referenced Header))]
-> ShowS
show :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> String
$cshow :: Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> String
showsPrec :: HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> ShowS
$cshowsPrec :: HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Header))
-> ShowS
Show)
instance Steppable Response (Definitions (Referenced Link)) where
data Step Response (Definitions (Referenced Link)) = ResponseLinks
deriving stock (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
(Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool)
-> Eq (Step Response (InsOrdHashMap HeaderName (Referenced Link)))
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
$c/= :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
== :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
$c== :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
Eq, Eq (Step Response (InsOrdHashMap HeaderName (Referenced Link)))
Eq (Step Response (InsOrdHashMap HeaderName (Referenced Link)))
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Ordering)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link)))
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link)))
-> Ord (Step Response (InsOrdHashMap HeaderName (Referenced Link)))
Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Ordering
Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
$cmin :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
max :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
$cmax :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
>= :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
$c>= :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
> :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
$c> :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
<= :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
$c<= :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
< :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
$c< :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Bool
compare :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Ordering
$ccompare :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> Ordering
$cp1Ord :: Eq (Step Response (InsOrdHashMap HeaderName (Referenced Link)))
Ord, HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> ShowS
[Step Response (InsOrdHashMap HeaderName (Referenced Link))]
-> ShowS
Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> String
(HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> ShowS)
-> (Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> String)
-> ([Step Response (InsOrdHashMap HeaderName (Referenced Link))]
-> ShowS)
-> Show
(Step Response (InsOrdHashMap HeaderName (Referenced Link)))
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step Response (InsOrdHashMap HeaderName (Referenced Link))]
-> ShowS
$cshowList :: [Step Response (InsOrdHashMap HeaderName (Referenced Link))]
-> ShowS
show :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> String
$cshow :: Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> String
showsPrec :: HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> ShowS
$cshowsPrec :: HttpStatusCode
-> Step Response (InsOrdHashMap HeaderName (Referenced Link))
-> ShowS
Show)
instance Steppable Response (Referenced Header) where
data Step Response (Referenced Header) = HeaderName
deriving stock (Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
(Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool)
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool)
-> Eq (Step Response (Referenced Header))
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
$c/= :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
== :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
$c== :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
Eq, Eq (Step Response (Referenced Header))
Eq (Step Response (Referenced Header))
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Ordering)
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool)
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool)
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool)
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool)
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header)
-> Step Response (Referenced Header))
-> (Step Response (Referenced Header)
-> Step Response (Referenced Header)
-> Step Response (Referenced Header))
-> Ord (Step Response (Referenced Header))
Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Ordering
Step Response (Referenced Header)
-> Step Response (Referenced Header)
-> Step Response (Referenced Header)
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step Response (Referenced Header)
-> Step Response (Referenced Header)
-> Step Response (Referenced Header)
$cmin :: Step Response (Referenced Header)
-> Step Response (Referenced Header)
-> Step Response (Referenced Header)
max :: Step Response (Referenced Header)
-> Step Response (Referenced Header)
-> Step Response (Referenced Header)
$cmax :: Step Response (Referenced Header)
-> Step Response (Referenced Header)
-> Step Response (Referenced Header)
>= :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
$c>= :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
> :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
$c> :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
<= :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
$c<= :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
< :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
$c< :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Bool
compare :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Ordering
$ccompare :: Step Response (Referenced Header)
-> Step Response (Referenced Header) -> Ordering
$cp1Ord :: Eq (Step Response (Referenced Header))
Ord, HttpStatusCode -> Step Response (Referenced Header) -> ShowS
[Step Response (Referenced Header)] -> ShowS
Step Response (Referenced Header) -> String
(HttpStatusCode -> Step Response (Referenced Header) -> ShowS)
-> (Step Response (Referenced Header) -> String)
-> ([Step Response (Referenced Header)] -> ShowS)
-> Show (Step Response (Referenced Header))
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step Response (Referenced Header)] -> ShowS
$cshowList :: [Step Response (Referenced Header)] -> ShowS
show :: Step Response (Referenced Header) -> String
$cshow :: Step Response (Referenced Header) -> String
showsPrec :: HttpStatusCode -> Step Response (Referenced Header) -> ShowS
$cshowsPrec :: HttpStatusCode -> Step Response (Referenced Header) -> ShowS
Show)
instance Steppable Responses (IOHM.InsOrdHashMap HttpStatusCode (Referenced Response)) where
data Step Responses (IOHM.InsOrdHashMap HttpStatusCode (Referenced Response)) = ResponsesStep
deriving stock (Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
(Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool)
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool)
-> Eq
(Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
$c/= :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
== :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
$c== :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
Eq, Eq
(Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
Eq
(Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Ordering)
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool)
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool)
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool)
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool)
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
-> Ord
(Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Ordering
Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
$cmin :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
max :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
$cmax :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
>= :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
$c>= :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
> :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
$c> :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
<= :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
$c<= :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
< :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
$c< :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Bool
compare :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Ordering
$ccompare :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> Ordering
$cp1Ord :: Eq
(Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
Ord, HttpStatusCode
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> ShowS
[Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))]
-> ShowS
Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> String
(HttpStatusCode
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> ShowS)
-> (Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> String)
-> ([Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))]
-> ShowS)
-> Show
(Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response)))
forall a.
(HttpStatusCode -> a -> ShowS)
-> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))]
-> ShowS
$cshowList :: [Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))]
-> ShowS
show :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> String
$cshow :: Step Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> String
showsPrec :: HttpStatusCode
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> ShowS
$cshowsPrec :: HttpStatusCode
-> Step
Responses (InsOrdHashMap HttpStatusCode (Referenced Response))
-> ShowS
Show)