| Copyright | (c) Eric Mertens 2017 |
|---|---|
| License | ISC |
| Maintainer | emertens@gmail.com |
| Safe Haskell | None |
| Language | Haskell2010 |
Config.Schema.Load
Contents
Description
This module automates the extraction of a decoded value from a configuration value according to a specification as built using Config.Schema.Spec.
Synopsis
- loadValue :: ValueSpec a -> Value p -> Either (ValueSpecMismatch p) a
- loadValueFromFile :: ValueSpec a -> FilePath -> IO a
- data ValueSpecMismatch p = ValueSpecMismatch p Text (NonEmpty (PrimMismatch p))
- data PrimMismatch p = PrimMismatch Text (Problem p)
- data Problem p
Documentation
Arguments
| :: ValueSpec a | specification |
| -> Value p | value |
| -> Either (ValueSpecMismatch p) a | errors or decoded value |
Read a configuration file, parse it, and validate it according to the given specification.
Throws IOError, ParseError, or ValueSpecMismatch
Errors
data ValueSpecMismatch p Source #
Newtype wrapper for schema load errors.
Constructors
| ValueSpecMismatch p Text (NonEmpty (PrimMismatch p)) | Problem value and list of specification failures |
Instances
| Show p => Show (ValueSpecMismatch p) Source # | |
Defined in Config.Schema.Load.Error Methods showsPrec :: Int -> ValueSpecMismatch p -> ShowS # show :: ValueSpecMismatch p -> String # showList :: [ValueSpecMismatch p] -> ShowS # | |
| ErrorAnnotation p => Exception (ValueSpecMismatch p) Source # |
|
Defined in Config.Schema.Load.Error Methods toException :: ValueSpecMismatch p -> SomeException # fromException :: SomeException -> Maybe (ValueSpecMismatch p) # displayException :: ValueSpecMismatch p -> String # | |
data PrimMismatch p Source #
Type for errors that can be encountered while decoding a value according to a specification. The error includes a key path indicating where in the configuration file the error occurred.
Constructors
| PrimMismatch Text (Problem p) | spec description and problem |
Instances
| Show p => Show (PrimMismatch p) Source # | |
Defined in Config.Schema.Load.Error Methods showsPrec :: Int -> PrimMismatch p -> ShowS # show :: PrimMismatch p -> String # showList :: [PrimMismatch p] -> ShowS # | |
Constructors
| MissingSection Text | missing section name |
| UnusedSections (NonEmpty Text) | unused section names |
| SubkeyProblem Text (ValueSpecMismatch p) | nested error in given section |
| ListElementProblem Int (ValueSpecMismatch p) | nested error in given list element |
| NestedProblem (ValueSpecMismatch p) | generic nested error |
| TypeMismatch | value and spec type mismatch |
| CustomProblem Text | custom spec error message |
| WrongAtom | atoms didn't match |