hjsonschema-1.3.0.0: src/Data/Validator/Types.hs
module Data.Validator.Types where
import Import
import Data.Profunctor (Profunctor(..))
data Validator schema val err = Validator
{ _embedded :: val -> ([schema], [schema])
-- ^ The first list is embedded schemas that validate the same piece
-- of data this schema validates (such as schemas embedded in 'allOf').
-- The second is embedded schemas that validate a subset of that data
-- (such as the schemas embedded in 'items').
--
-- This is done to allow static detection of loops, though this isn't
-- implemented yet (though the Draft4 code does do live loop detection
-- during validation).
, _validate :: val -> Value -> [err]
} deriving Functor
instance Profunctor (Validator schema) where
lmap f (Validator a b) = Validator (lmap f a) (lmap f b)
rmap = fmap