From abe8ce597ba308c60b98bb3720d8b5d6588c7782 Mon Sep 17 00:00:00 2001 From: Aniket Deshpande Date: Wed, 29 Oct 2025 16:47:52 +0530 Subject: [PATCH 1/3] Reexport necessary types for ledger tests. * CBORTermResult * CDDLResult --- CHANGELOG.md | 2 +- src/Codec/CBOR/Cuddle/CBOR/Validator.hs | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 320f5bf..7be3121 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,7 +13,7 @@ * Changed the type of the first argument for `generateCBORTerm` and `generateCBORTerm'` to `CTreeRoot` * Removed all exports in `Codec.CBOR.Cuddle.CBOR.Validator` except for - `validateCBOR` and `validateCBOR'` + `validateCBOR`, `validateCBOR'`, `CBORTermResult` and `CDDLResult` ## 1.0.0.0 diff --git a/src/Codec/CBOR/Cuddle/CBOR/Validator.hs b/src/Codec/CBOR/Cuddle/CBOR/Validator.hs index e763078..300f2a1 100644 --- a/src/Codec/CBOR/Cuddle/CBOR/Validator.hs +++ b/src/Codec/CBOR/Cuddle/CBOR/Validator.hs @@ -5,6 +5,8 @@ module Codec.CBOR.Cuddle.CBOR.Validator ( validateCBOR, validateCBOR', + CDDLResult (..), + CBORTermResult (..), ) where import Codec.CBOR.Cuddle.CDDL hiding (CDDL, Group, Rule) From 0bc8b36b06b43aea84eb322fecf925b0819bff0b Mon Sep 17 00:00:00 2001 From: Aniket Deshpande Date: Wed, 29 Oct 2025 17:42:13 +0530 Subject: [PATCH 2/3] Add IndexMappable instance: HuddleStage->CTreePhase --- CHANGELOG.md | 1 + src/Codec/CBOR/Cuddle/IndexMappable.hs | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7be3121..c6b1ed4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## 1.1.0.0 +* Implement `IndexMappable` instance for `HuddleStage` to `CTreePhase` * Change the order of fields in `GroupEntry`; the extension field is now the last field * Add `IndexMappable` to help with traversing `CDDL` trees * Add an index type parameter to all `CDDL` terms diff --git a/src/Codec/CBOR/Cuddle/IndexMappable.hs b/src/Codec/CBOR/Cuddle/IndexMappable.hs index eba4d78..5b51c7a 100644 --- a/src/Codec/CBOR/Cuddle/IndexMappable.hs +++ b/src/Codec/CBOR/Cuddle/IndexMappable.hs @@ -214,6 +214,20 @@ instance IndexMappable XXType2 ParserStage HuddleStage where instance IndexMappable XTerm ParserStage HuddleStage where mapIndex (ParserXTerm c) = HuddleXTerm c +-- HuddleStage -> CTreePhase + +instance IndexMappable XCddl HuddleStage CTreePhase where + mapIndex (HuddleXCddl c) = CTreeXCddl c + +instance IndexMappable XXTopLevel HuddleStage CTreePhase where + mapIndex (HuddleXXTopLevel c) = CTreeXXTopLevel c + +instance IndexMappable XXType2 HuddleStage CTreePhase where + mapIndex (HuddleXXType2 c) = CTreeXXType2 c + +instance IndexMappable XTerm HuddleStage CTreePhase where + mapIndex (HuddleXTerm c) = CTreeXTerm c + -- ParserStage -> ParserStage instance IndexMappable XCddl ParserStage ParserStage From 29b8db51bb132e403a91e7ac622184e047b8fede Mon Sep 17 00:00:00 2001 From: Aniket Deshpande Date: Wed, 29 Oct 2025 17:51:11 +0530 Subject: [PATCH 3/3] Add IndexMappable inst: HuddleStage->PrettyStage --- CHANGELOG.md | 4 +++- src/Codec/CBOR/Cuddle/IndexMappable.hs | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c6b1ed4..66ac921 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,9 @@ ## 1.1.0.0 -* Implement `IndexMappable` instance for `HuddleStage` to `CTreePhase` +* Implement `IndexMappable` instance for + - `HuddleStage` to `CTreePhase` + - `HuddleStage` to `PrettyStage` * Change the order of fields in `GroupEntry`; the extension field is now the last field * Add `IndexMappable` to help with traversing `CDDL` trees * Add an index type parameter to all `CDDL` terms diff --git a/src/Codec/CBOR/Cuddle/IndexMappable.hs b/src/Codec/CBOR/Cuddle/IndexMappable.hs index 5b51c7a..70063cf 100644 --- a/src/Codec/CBOR/Cuddle/IndexMappable.hs +++ b/src/Codec/CBOR/Cuddle/IndexMappable.hs @@ -228,6 +228,20 @@ instance IndexMappable XXType2 HuddleStage CTreePhase where instance IndexMappable XTerm HuddleStage CTreePhase where mapIndex (HuddleXTerm c) = CTreeXTerm c +-- HuddleStage -> PrettyStage + +instance IndexMappable XCddl HuddleStage PrettyStage where + mapIndex (HuddleXCddl c) = PrettyXCddl c + +instance IndexMappable XXTopLevel HuddleStage PrettyStage where + mapIndex (HuddleXXTopLevel c) = PrettyXXTopLevel c + +instance IndexMappable XXType2 HuddleStage PrettyStage where + mapIndex (HuddleXXType2 c) = absurd c + +instance IndexMappable XTerm HuddleStage PrettyStage where + mapIndex (HuddleXTerm c) = PrettyXTerm c + -- ParserStage -> ParserStage instance IndexMappable XCddl ParserStage ParserStage