module Test.Cardano.Ledger.Mary.Binary.Cddl (
  readMaryCddlFileNames,
  readMaryCddlFiles,
) where

import qualified Data.ByteString.Lazy as BSL
import Paths_cardano_ledger_mary

readMaryCddlFileNames :: IO [FilePath]
readMaryCddlFileNames :: IO [FilePath]
readMaryCddlFileNames = do
  FilePath
base <- FilePath -> IO FilePath
getDataFileName FilePath
"cddl-files/mary.cddl"
  FilePath
crypto <- FilePath -> IO FilePath
getDataFileName FilePath
"cddl-files/crypto.cddl"
  FilePath
extras <- FilePath -> IO FilePath
getDataFileName FilePath
"cddl-files/extras.cddl"
  -- extras contains the types whose restrictions cannot be expressed in CDDL
  forall (f :: * -> *) a. Applicative f => a -> f a
pure [FilePath
base, FilePath
crypto, FilePath
extras]

readMaryCddlFiles :: IO [BSL.ByteString]
readMaryCddlFiles :: IO [ByteString]
readMaryCddlFiles = forall (t :: * -> *) (m :: * -> *) a b.
(Traversable t, Monad m) =>
(a -> m b) -> t a -> m (t b)
mapM FilePath -> IO ByteString
BSL.readFile forall (m :: * -> *) a b. Monad m => (a -> m b) -> m a -> m b
=<< IO [FilePath]
readMaryCddlFileNames