@@ -10,16 +10,15 @@ module Cardano.Ledger.Huddle.Gen (
1010 -- * MonadGen
1111 module GenT ,
1212
13- -- * CBORGen
14- module CBORGen ,
13+ -- * Cuddle core
14+ module CustomCore ,
15+ Term (.. ),
1516
1617 -- * Term generators
17- Term (.. ),
18- WrappedTerm (.. ),
19- Name (.. ),
20- genRule ,
18+ module CustomGen ,
2119 generateFromName ,
2220 generateFromGRef ,
21+ genRule ,
2322 genArrayTerm ,
2423 genBytesTerm ,
2524 genStringTerm ,
@@ -28,6 +27,7 @@ module Cardano.Ledger.Huddle.Gen (
2827 unwrapSingleOrError ,
2928
3029 -- * Term validators
30+ module CustomValidator ,
3131 validateFromName ,
3232 validateFromGRef ,
3333 validateInt ,
@@ -54,9 +54,12 @@ import Cardano.Ledger.Huddle (HuddleRule ())
5454import Codec.CBOR.Cuddle.CBOR.Gen (generateFromGRef , generateFromName )
5555import Codec.CBOR.Cuddle.CBOR.Validator (validateFromGRef , validateFromName )
5656import Codec.CBOR.Cuddle.CDDL (Name (.. ))
57- import Codec.CBOR.Cuddle.CDDL.CBORGenerator as CBORGen
5857import Codec.CBOR.Cuddle.CDDL.CTree (nintMin , uintMax )
58+ import Codec.CBOR.Cuddle.CDDL.Custom.Core as CustomCore
59+ import Codec.CBOR.Cuddle.CDDL.Custom.Generator as CustomGen
60+ import Codec.CBOR.Cuddle.CDDL.Custom.Validator as CustomValidator
5961import Control.Monad.Reader (asks )
62+ import Data.Bifunctor (Bifunctor (.. ))
6063import Data.ByteString (ByteString )
6164import qualified Data.ByteString.Lazy as LBS
6265import Data.List (sortOn )
@@ -68,7 +71,6 @@ import GHC.TypeLits (symbolVal)
6871import Test.AntiGen as AntiGen
6972import qualified Test.QuickCheck as QC
7073import Test.QuickCheck.GenT as GenT
71- import Data.Bifunctor (Bifunctor (.. ))
7274
7375-- | A function for generating a term from a rule. The @HuddleRule@ constraint
7476-- ensures that the rule is actually defined in that era.
@@ -156,48 +158,48 @@ canonicalizeTerm = \case
156158
157159-- Term validators
158160
159- validateInt :: Term -> CBORValidator Integer
161+ validateInt :: Term -> Validator Integer
160162validateInt (TInt (toInteger -> x))
161163 | x >= nintMin || x <= uintMax = pure x
162164 | otherwise = fail " Number not in int range"
163165validateInt _ = fail " Expected int"
164166
165- validateUInt :: Term -> CBORValidator Integer
167+ validateUInt :: Term -> Validator Integer
166168validateUInt (TInt (toInteger -> x))
167169 | x >= 0 || x <= uintMax = pure x
168170 | otherwise = fail " Number not in uint range"
169171validateUInt _ = fail " Expected uint"
170172
171- validateNInt :: Term -> CBORValidator Integer
173+ validateNInt :: Term -> Validator Integer
172174validateNInt (TInt (toInteger -> x))
173175 | x >= nintMin || x < 0 = pure x
174176 | otherwise = fail " Number not in nint range"
175177validateNInt _ = fail " Expected nint"
176178
177- validateArrayTerm :: Term -> CBORValidator [Term ]
179+ validateArrayTerm :: Term -> Validator [Term ]
178180validateArrayTerm (TList xs) = pure xs
179181validateArrayTerm (TListI xs) = pure xs
180182validateArrayTerm _ = fail " Expected list"
181183
182- validateBytesTerm :: Term -> CBORValidator ByteString
184+ validateBytesTerm :: Term -> Validator ByteString
183185validateBytesTerm (TBytes bs) = pure bs
184186validateBytesTerm (TBytesI bs) = pure $ LBS. toStrict bs
185187validateBytesTerm _ = fail " Expected bytes"
186188
187- validateStringTerm :: Term -> CBORValidator Text
189+ validateStringTerm :: Term -> Validator Text
188190validateStringTerm (TString x) = pure x
189191validateStringTerm (TStringI x) = pure $ LT. toStrict x
190192validateStringTerm _ = fail " Expected string"
191193
192- validateMapTerm :: Term -> CBORValidator [(Term , Term )]
194+ validateMapTerm :: Term -> Validator [(Term , Term )]
193195validateMapTerm (TMap xs) = pure xs
194196validateMapTerm (TMapI xs) = pure xs
195197validateMapTerm _ = fail " Expected map"
196198
197- unwrapSingle :: WrappedTerm -> CBORValidator Term
198- unwrapSingle (S x) = pure x
199+ unwrapSingle :: RuleTerm -> Validator Term
200+ unwrapSingle (SingleTerm x) = pure x
199201unwrapSingle _ = fail " Expected a single term"
200202
201- unwrapSingleOrError :: WrappedTerm -> Term
202- unwrapSingleOrError (S x) = x
203+ unwrapSingleOrError :: RuleTerm -> Term
204+ unwrapSingleOrError (SingleTerm x) = x
203205unwrapSingleOrError _ = error " Expected a single term"
0 commit comments