module Test.Cardano.Ledger.Babbage.Binary.Cddl (
  readBabbageCddlFileNames,
  readBabbageCddlFiles,
) where

import qualified Data.ByteString.Lazy as BSL
import Paths_cardano_ledger_babbage

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

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