module Test.Cardano.Ledger.Allegra.Binary.Cddl (
  readAllegraCddlFileNames,
  readAllegraCddlFiles,
) where

import qualified Data.ByteString.Lazy as BSL
import Paths_cardano_ledger_allegra

readAllegraCddlFileNames :: IO [FilePath]
readAllegraCddlFileNames :: IO [FilePath]
readAllegraCddlFileNames = do
  FilePath
base <- FilePath -> IO FilePath
getDataFileName FilePath
"cddl-files/allegra.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]

readAllegraCddlFiles :: IO [BSL.ByteString]
readAllegraCddlFiles :: IO [ByteString]
readAllegraCddlFiles = 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]
readAllegraCddlFileNames