11{-# LANGUAGE DeriveGeneric #-}
2+ {-# LANGUAGE DerivingStrategies #-}
3+ {-# LANGUAGE DerivingVia #-}
24{-# LANGUAGE StandaloneDeriving #-}
35{-# OPTIONS_GHC -Wno-orphans #-}
46
@@ -9,23 +11,29 @@ module Test.Consensus.OrphanInstances () where
911import Cardano.Slotting.Time (SlotLength )
1012import Control.Monad.Class.MonadTime.SI (Time )
1113import Data.Aeson
12- ( FromJSON
13- , ToJSON (toEncoding )
14- , defaultOptions
15- , genericToEncoding
14+ import Data.FingerTree (FingerTree (.. ))
15+ import Data.FingerTree.Strict
16+ ( Measured
17+ , StrictFingerTree
18+ , forceToStrict
19+ , fromList
20+ , fromStrict
1621 )
17- import Data.FingerTree.Strict ( StrictFingerTree )
22+ import Data.Foldable ( toList )
1823import GHC.Generics
1924import Ouroboros.Consensus.Block.Abstract (GenesisWindow (.. ))
2025import Ouroboros.Consensus.Config (SecurityParam (.. ))
2126
2227-- import Ouroboros.Network.AnchoredFragment (AnchoredFragment, AnchoredSeq)
28+
29+ import Data.ByteString (StrictByteString )
2330import Ouroboros.Network.AnchoredSeq (AnchoredSeq (.. ))
2431import Test.Consensus.BlockTree (BlockTree (.. ), BlockTreeBranch (.. ))
2532import Test.Consensus.PointSchedule
2633 ( BlockFetchTimeout (.. )
2734 , CSJParams (.. )
2835 , ChainSyncTimeout (.. )
36+ , ForecastRange (.. )
2937 , GenesisTest (.. )
3038 , LoPBucketParams (.. )
3139 , PointSchedule (.. )
@@ -50,6 +58,10 @@ deriving instance Generic GenesisWindow
5058instance ToJSON GenesisWindow
5159instance FromJSON GenesisWindow
5260
61+ deriving instance Generic ForecastRange
62+ instance ToJSON ForecastRange
63+ instance FromJSON ForecastRange
64+
5365deriving instance Generic Delta
5466instance ToJSON Delta
5567instance FromJSON Delta
@@ -88,8 +100,14 @@ deriving instance Generic (BlockTreeBranch blk)
88100instance ToJSON blk => ToJSON (BlockTreeBranch blk )
89101instance FromJSON blk => FromJSON (BlockTreeBranch blk )
90102
91- instance (ToJSON v , ToJSON a , ToJSON b ) => ToJSON (AnchoredSeq v a b )
92- instance (FromJSON v , FromJSON a , FromJSON b ) => FromJSON (AnchoredSeq v a b )
103+ instance (MeasuredWith v a b , ToJSON v , ToJSON a , ToJSON b ) => ToJSON (AnchoredSeq v a b )
104+ instance (Anchorable v a b , FromJSON v , FromJSON a , FromJSON b ) => FromJSON (AnchoredSeq v a b )
105+
106+ instance (Measured v a , FromJSON a ) => FromJSON (StrictFingerTree v a ) where
107+ parseJSON v = fromList <$> parseJSON v
108+
109+ instance ToJSON a => ToJSON (StrictFingerTree v a ) where
110+ toJSON sft = toJSON $ toList sft
93111
94112-- *** 'PointSchedule' field related instances
95113
0 commit comments