medea-1.0.0: src/Data/Medea/Parser/Spec/Schemata.hs
{-# LANGUAGE FlexibleContexts #-}
module Data.Medea.Parser.Spec.Schemata
( Specification (..),
parseSpecification,
)
where
import qualified Data.Medea.Parser.Spec.Schema as Schema
import Data.Medea.Parser.Types (MedeaParser)
import Data.Vector (Vector)
import qualified Data.Vector as V
import Text.Megaparsec (MonadParsec (..), sepBy1)
import Text.Megaparsec.Char (eol)
newtype Specification = Specification (Vector Schema.Specification)
parseSpecification :: MedeaParser Specification
parseSpecification = do
specs <- Schema.parseSpecification `sepBy1` eol
eof
pure . Specification . V.fromList $ specs