From 03d73f442f85537ec3489ffcd339dabc8a3ffb07 Mon Sep 17 00:00:00 2001 From: Evgeny Poberezkin Date: Fri, 8 Mar 2024 10:01:58 +0000 Subject: [PATCH] JSON instance for VersionRange (#1036) --- src/Simplex/Messaging/Version.hs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Simplex/Messaging/Version.hs b/src/Simplex/Messaging/Version.hs index 78d290687..21c7c3ac3 100644 --- a/src/Simplex/Messaging/Version.hs +++ b/src/Simplex/Messaging/Version.hs @@ -4,6 +4,7 @@ {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE TypeFamilies #-} module Simplex.Messaging.Version @@ -26,9 +27,11 @@ module Simplex.Messaging.Version where import Control.Applicative (optional) +import qualified Data.Aeson.TH as J import qualified Data.Attoparsec.ByteString.Char8 as A import Simplex.Messaging.Encoding import Simplex.Messaging.Encoding.String +import Simplex.Messaging.Parsers (defaultJSON) import Simplex.Messaging.Version.Internal (Version (..)) pattern VersionRange :: Version v -> Version v -> VersionRange v @@ -120,3 +123,5 @@ compatibleVersion x vr = mkCompatibleIf :: a -> Bool -> Maybe (Compatible a) x `mkCompatibleIf` cond = if cond then Just $ Compatible_ x else Nothing + +$(J.deriveJSON defaultJSON ''VersionRange)