Skip to content

Commit 4f64fb9

Browse files
committed
refactor(api): export caseBabbageOnlyOrConwayEraOnwards from public API
Completes the integration of caseBabbageOnlyOrConwayEraOnwards by adding it to the public API exports, ensuring it's available alongside other era case functions like caseByronOrShelleyBasedEra. - Add caseBabbageOnlyOrConwayEraOnwards to Cardano.Api.Era export list - Create new "Case on BabbageEraOnwards" subsection for organization - Add corresponding export section in Internal.Case module - Implement the function to handle Babbage-only vs Conway+ era branching The function enables cleaner conditional logic when dealing with features that differ between Babbage and Conway eras, particularly useful for handling Conway-specific governance features and protocol parameters.
1 parent 0e41fa3 commit 4f64fb9

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

cardano-api/src/Cardano/Api/Era.hs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ module Cardano.Api.Era
7474
, caseShelleyToMaryOrAlonzoEraOnwards
7575
, caseShelleyToAlonzoOrBabbageEraOnwards
7676
, caseShelleyToBabbageOrConwayEraOnwards
77+
78+
-- ** Case on BabbageEraOnwards
79+
, caseBabbageOnlyOrConwayEraOnwards
7780
)
7881
where
7982

cardano-api/src/Cardano/Api/Era/Internal/Case.hs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ module Cardano.Api.Era.Internal.Case
1313
, caseShelleyToMaryOrAlonzoEraOnwards
1414
, caseShelleyToAlonzoOrBabbageEraOnwards
1515
, caseShelleyToBabbageOrConwayEraOnwards
16+
-- Case on BabbageEraOnwards
17+
, caseBabbageOnlyOrConwayEraOnwards
1618
-- Conversions
1719
, shelleyToAlonzoEraToShelleyToBabbageEra
1820
, alonzoEraOnwardsToMaryEraOnwards
@@ -157,6 +159,19 @@ caseShelleyToBabbageOrConwayEraOnwards l r = \case
157159
ShelleyBasedEraConway -> r ConwayEraOnwardsConway
158160
ShelleyBasedEraDijkstra -> error "caseShelleyToBabbageOrConwayEraOnwards: DijkstraEra is not supported"
159161

162+
-- | @caseBabbageOnlyOrConwayEraOnwards f g era@ applies @f@ to babbage era only;
163+
-- and applies @g@ to conway and later eras.
164+
caseBabbageOnlyOrConwayEraOnwards
165+
:: ()
166+
=> a
167+
-> (ConwayEraOnwardsConstraints era => ConwayEraOnwards era -> a)
168+
-> BabbageEraOnwards era
169+
-> a
170+
caseBabbageOnlyOrConwayEraOnwards l r = \case
171+
BabbageEraOnwardsBabbage -> l
172+
BabbageEraOnwardsConway -> r ConwayEraOnwardsConway
173+
BabbageEraOnwardsDijkstra -> error "caseBabbageOnlyOrConwayEraOnwards: DijkstraEra is not supported"
174+
160175
{-# DEPRECATED shelleyToAlonzoEraToShelleyToBabbageEra "Use convert instead" #-}
161176
shelleyToAlonzoEraToShelleyToBabbageEra
162177
:: ()

0 commit comments

Comments
 (0)