{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE Safe #-} {-# LANGUAGE ScopedTypeVariables #-} -- | -- Copyright: © Herbert Valerio Riedel 2015-2018 -- SPDX-License-Identifier: GPL-2.0-or-later -- -- Predefined YAML 1.2 Schema resolvers and encoders as well as support for defining custom resolvers and encoders. -- -- @since 0.2.0.0 module Data.YAML.Schema ( -- * Schema resolvers -- ** YAML 1.2 Schema resolvers SchemaResolver(..) , failsafeSchemaResolver , jsonSchemaResolver , coreSchemaResolver -- * Schema encoders -- ** YAML 1.2 Schema encoders , SchemaEncoder(..) , failsafeSchemaEncoder , jsonSchemaEncoder , coreSchemaEncoder -- ** Custom Schema encoding -- -- | According to YAML 1.2 the recommended default 'SchemaEncoder' is 'coreSchemaEncoder' under which 'Scalar's are encoded as follows: -- -- * String which are made of Plain Characters (see 'isPlainChar'), unambiguous (see 'isAmbiguous') and do not contain any leading/trailing spaces are encoded as 'Data.YAML.Event.Plain' 'Scalar'. -- -- * Rest of the strings are encoded in DoubleQuotes -- -- * Booleans are encoded using 'encodeBool' -- -- * Double values are encoded using 'encodeDouble' -- -- * Integral values are encoded using 'encodeInt' -- , setScalarStyle , isPlainChar , isAmbiguous , encodeDouble , encodeBool , encodeInt ) where import Data.YAML.Schema.Internal