{-# OPTIONS_GHC -Wno-orphans #-}

module Data.OpenApi.Compare.Validate.Link () where

import Data.OpenApi
import Data.OpenApi.Compare.Behavior
import Data.OpenApi.Compare.Subtree
import Text.Pandoc.Builder

instance Subtree Link where
  type SubtreeLevel Link = 'LinkLevel
  type CheckEnv Link = '[]
  checkStructuralCompatibility :: HList (CheckEnv Link)
-> ProdCons (Traced Link) -> StructuralCompatFormula ()
checkStructuralCompatibility HList (CheckEnv Link)
_ ProdCons (Traced Link)
_ = StructuralCompatFormula ()
forall a. StructuralCompatFormula a
structuralIssue
  checkSemanticCompatibility :: HList (CheckEnv Link)
-> Behavior (SubtreeLevel Link)
-> ProdCons (Traced Link)
-> SemanticCompatFormula ()
checkSemanticCompatibility HList (CheckEnv Link)
_ Behavior (SubtreeLevel Link)
bhv ProdCons (Traced Link)
_ = Paths Behave 'APILevel 'LinkLevel
-> Issue 'LinkLevel -> SemanticCompatFormula ()
forall (l :: BehaviorLevel)
       (q :: BehaviorLevel -> BehaviorLevel -> *) (r :: BehaviorLevel) a.
Issuable l =>
Paths q r l -> Issue l -> CompatFormula' q AnIssue r a
issueAt Paths Behave 'APILevel 'LinkLevel
Behavior (SubtreeLevel Link)
bhv Issue 'LinkLevel
LinksUnsupported

instance Issuable 'LinkLevel where
  data Issue 'LinkLevel
    = LinksUnsupported
    deriving stock (Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
(Issue 'LinkLevel -> Issue 'LinkLevel -> Bool)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Bool)
-> Eq (Issue 'LinkLevel)
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
$c/= :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
== :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
$c== :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
Eq, Eq (Issue 'LinkLevel)
Eq (Issue 'LinkLevel)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Ordering)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Bool)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Bool)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Bool)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Bool)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Issue 'LinkLevel)
-> (Issue 'LinkLevel -> Issue 'LinkLevel -> Issue 'LinkLevel)
-> Ord (Issue 'LinkLevel)
Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
Issue 'LinkLevel -> Issue 'LinkLevel -> Ordering
Issue 'LinkLevel -> Issue 'LinkLevel -> Issue 'LinkLevel
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 'LinkLevel -> Issue 'LinkLevel -> Issue 'LinkLevel
$cmin :: Issue 'LinkLevel -> Issue 'LinkLevel -> Issue 'LinkLevel
max :: Issue 'LinkLevel -> Issue 'LinkLevel -> Issue 'LinkLevel
$cmax :: Issue 'LinkLevel -> Issue 'LinkLevel -> Issue 'LinkLevel
>= :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
$c>= :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
> :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
$c> :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
<= :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
$c<= :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
< :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
$c< :: Issue 'LinkLevel -> Issue 'LinkLevel -> Bool
compare :: Issue 'LinkLevel -> Issue 'LinkLevel -> Ordering
$ccompare :: Issue 'LinkLevel -> Issue 'LinkLevel -> Ordering
$cp1Ord :: Eq (Issue 'LinkLevel)
Ord, Int -> Issue 'LinkLevel -> ShowS
[Issue 'LinkLevel] -> ShowS
Issue 'LinkLevel -> String
(Int -> Issue 'LinkLevel -> ShowS)
-> (Issue 'LinkLevel -> String)
-> ([Issue 'LinkLevel] -> ShowS)
-> Show (Issue 'LinkLevel)
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Issue 'LinkLevel] -> ShowS
$cshowList :: [Issue 'LinkLevel] -> ShowS
show :: Issue 'LinkLevel -> String
$cshow :: Issue 'LinkLevel -> String
showsPrec :: Int -> Issue 'LinkLevel -> ShowS
$cshowsPrec :: Int -> Issue 'LinkLevel -> ShowS
Show)
  issueKind :: Issue 'LinkLevel -> IssueKind
issueKind = \case
    Issue 'LinkLevel
LinksUnsupported -> IssueKind
Unsupported
  describeIssue :: Orientation -> Issue 'LinkLevel -> Blocks
describeIssue Orientation
_ Issue 'LinkLevel
LinksUnsupported = Inlines -> Blocks
para Inlines
"CompaREST does not currently support Link Objects."