mirror of
https://github.com/simplex-chat/simplexmq.git
synced 2026-10-22 17:32:16 +00:00
core: restore Eq instances (#1038)
* core: restore Eq instances * remove duplicates from tests
This commit is contained in:
1 parent
b4e55146b8
commit
8cdd49b912
6 files changed
+36
-28
No files matched your search
@@ -171,7 +171,7 @@ import Data.List.NonEmpty (NonEmpty (..))
|
||||
import qualified Data.List.NonEmpty as L
|
||||
import Data.Map (Map)
|
||||
import qualified Data.Map as M
|
||||
import Data.Maybe (fromMaybe)
|
||||
import Data.Maybe (fromMaybe, isJust)
|
||||
import Data.Text (Text)
|
||||
import qualified Data.Text as T
|
||||
import Data.Text.Encoding (decodeLatin1, encodeUtf8)
|
||||
@@ -365,6 +365,11 @@ deriving instance Show ACmd
|
||||
|
||||
data APartyCmd p = forall e. AEntityI e => APC (SAEntity e) (ACommand p e)
|
||||
|
||||
instance Eq (APartyCmd p) where
|
||||
APC e cmd == APC e' cmd' = case testEquality e e' of
|
||||
Just Refl -> cmd == cmd'
|
||||
Nothing -> False
|
||||
|
||||
deriving instance Show (APartyCmd p)
|
||||
|
||||
type ConnInfo = ByteString
|
||||
@@ -417,12 +422,19 @@ data ACommand (p :: AParty) (e :: AEntity) where
|
||||
SFDONE :: ValidFileDescription 'FSender -> [ValidFileDescription 'FRecipient] -> ACommand Agent AESndFile
|
||||
SFERR :: AgentErrorType -> ACommand Agent AESndFile
|
||||
|
||||
deriving instance Eq (ACommand p e)
|
||||
|
||||
deriving instance Show (ACommand p e)
|
||||
|
||||
data ACmdTag = forall p e. (APartyI p, AEntityI e) => ACmdTag (SAParty p) (SAEntity e) (ACommandTag p e)
|
||||
|
||||
data APartyCmdTag p = forall e. AEntityI e => APCT (SAEntity e) (ACommandTag p e)
|
||||
|
||||
instance Eq (APartyCmdTag p) where
|
||||
APCT e cmd == APCT e' cmd' = case testEquality e e' of
|
||||
Just Refl -> cmd == cmd'
|
||||
Nothing -> False
|
||||
|
||||
deriving instance Show (APartyCmdTag p)
|
||||
|
||||
data ACommandTag (p :: AParty) (e :: AEntity) where
|
||||
@@ -472,6 +484,8 @@ data ACommandTag (p :: AParty) (e :: AEntity) where
|
||||
SFDONE_ :: ACommandTag Agent AESndFile
|
||||
SFERR_ :: ACommandTag Agent AESndFile
|
||||
|
||||
deriving instance Eq (ACommandTag p e)
|
||||
|
||||
deriving instance Show (ACommandTag p e)
|
||||
|
||||
aPartyCmdTag :: APartyCmd p -> APartyCmdTag p
|
||||
@@ -755,6 +769,8 @@ data SConnectionMode (m :: ConnectionMode) where
|
||||
SCMInvitation :: SConnectionMode CMInvitation
|
||||
SCMContact :: SConnectionMode CMContact
|
||||
|
||||
deriving instance Eq (SConnectionMode m)
|
||||
|
||||
deriving instance Show (SConnectionMode m)
|
||||
|
||||
instance TestEquality SConnectionMode where
|
||||
@@ -764,6 +780,9 @@ instance TestEquality SConnectionMode where
|
||||
|
||||
data AConnectionMode = forall m. ConnectionModeI m => ACM (SConnectionMode m)
|
||||
|
||||
instance Eq AConnectionMode where
|
||||
ACM m == ACM m' = isJust $ testEquality m m'
|
||||
|
||||
cmInvitation :: AConnectionMode
|
||||
cmInvitation = ACM SCMInvitation
|
||||
|
||||
@@ -1356,10 +1375,17 @@ data ConnectionRequestUri (m :: ConnectionMode) where
|
||||
-- they are passed in AgentInvitation message
|
||||
CRContactUri :: ConnReqUriData -> ConnectionRequestUri CMContact
|
||||
|
||||
deriving instance Eq (ConnectionRequestUri m)
|
||||
|
||||
deriving instance Show (ConnectionRequestUri m)
|
||||
|
||||
data AConnectionRequestUri = forall m. ConnectionModeI m => ACR (SConnectionMode m) (ConnectionRequestUri m)
|
||||
|
||||
instance Eq AConnectionRequestUri where
|
||||
ACR m cr == ACR m' cr' = case testEquality m m' of
|
||||
Just Refl -> cr == cr'
|
||||
_ -> False
|
||||
|
||||
deriving instance Show AConnectionRequestUri
|
||||
|
||||
data ConnReqUriData = ConnReqUriData
|
||||
|
||||
@@ -190,6 +190,8 @@ data RKEMParams (s :: RatchetKEMState) where
|
||||
RKParamsProposed :: KEMPublicKey -> RKEMParams 'RKSProposed
|
||||
RKParamsAccepted :: KEMCiphertext -> KEMPublicKey -> RKEMParams 'RKSAccepted
|
||||
|
||||
deriving instance Eq (RKEMParams s)
|
||||
|
||||
deriving instance Show (RKEMParams s)
|
||||
|
||||
data ARKEMParams = forall s. RatchetKEMStateI s => ARKP (SRatchetKEMState s) (RKEMParams s)
|
||||
@@ -275,7 +277,7 @@ type RcvE2ERatchetParamsUri a = E2ERatchetParamsUri 'RKSProposed a
|
||||
|
||||
data E2ERatchetParamsUri (s :: RatchetKEMState) (a :: Algorithm)
|
||||
= E2ERatchetParamsUri VersionRangeE2E (PublicKey a) (PublicKey a) (Maybe (RKEMParams s))
|
||||
deriving (Show)
|
||||
deriving (Eq, Show)
|
||||
|
||||
data AE2ERatchetParamsUri (a :: Algorithm)
|
||||
= forall s.
|
||||
|
||||
@@ -183,7 +183,7 @@ import Data.Functor (($>))
|
||||
import Data.Kind
|
||||
import Data.List.NonEmpty (NonEmpty (..))
|
||||
import qualified Data.List.NonEmpty as L
|
||||
import Data.Maybe (isNothing)
|
||||
import Data.Maybe (isJust, isNothing)
|
||||
import Data.String
|
||||
import Data.Time.Clock.System (SystemTime (..))
|
||||
import Data.Type.Equality
|
||||
@@ -766,6 +766,9 @@ deriving instance Show (SProtocolType p)
|
||||
|
||||
data AProtocolType = forall p. ProtocolTypeI p => AProtocolType (SProtocolType p)
|
||||
|
||||
instance Eq AProtocolType where
|
||||
AProtocolType p == AProtocolType p' = isJust $ testEquality p p'
|
||||
|
||||
deriving instance Show AProtocolType
|
||||
|
||||
instance TestEquality SProtocolType where
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
{-# LANGUAGE GADTs #-}
|
||||
{-# LANGUAGE OverloadedLists #-}
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE StandaloneDeriving #-}
|
||||
{-# LANGUAGE PatternSynonyms #-}
|
||||
{-# OPTIONS_GHC -Wno-orphans #-}
|
||||
{-# OPTIONS_GHC -fno-warn-ambiguous-fields #-}
|
||||
@@ -11,7 +10,6 @@
|
||||
module AgentTests.ConnectionRequestTests where
|
||||
|
||||
import Data.ByteString (ByteString)
|
||||
import Data.Type.Equality
|
||||
import Network.HTTP.Types (urlEncode)
|
||||
import Simplex.Messaging.Agent.Protocol
|
||||
import qualified Simplex.Messaging.Crypto as C
|
||||
@@ -22,17 +20,6 @@ import Simplex.Messaging.ServiceScheme (ServiceScheme (..))
|
||||
import Simplex.Messaging.Version
|
||||
import Test.Hspec
|
||||
|
||||
deriving instance Eq (ConnectionRequestUri m)
|
||||
|
||||
deriving instance Eq (E2ERatchetParamsUri s a)
|
||||
|
||||
deriving instance Eq (RKEMParams s)
|
||||
|
||||
instance Eq AConnectionRequestUri where
|
||||
ACR m cr == ACR m' cr' = case testEquality m m' of
|
||||
Just Refl -> cr == cr'
|
||||
_ -> False
|
||||
|
||||
uri :: String
|
||||
uri = "smp.simplex.im"
|
||||
|
||||
|
||||
@@ -160,8 +160,6 @@ deriving instance Eq RatchetInitParams
|
||||
|
||||
deriving instance Eq RatchetKey
|
||||
|
||||
deriving instance Eq (RKEMParams s)
|
||||
|
||||
instance Eq ARKEMParams where
|
||||
(ARKP s ps) == (ARKP s' ps') = case testEquality s s' of
|
||||
Just Refl -> ps == ps'
|
||||
|
||||
@@ -57,7 +57,7 @@ import Data.Int (Int64)
|
||||
import Data.List (nub)
|
||||
import Data.List.NonEmpty (NonEmpty)
|
||||
import qualified Data.Map as M
|
||||
import Data.Maybe (isJust, isNothing)
|
||||
import Data.Maybe (isNothing)
|
||||
import qualified Data.Set as S
|
||||
import Data.Time.Clock (diffUTCTime, getCurrentTime)
|
||||
import Data.Time.Clock.System (SystemTime (..), getSystemTime)
|
||||
@@ -80,7 +80,7 @@ import Simplex.Messaging.Crypto.Ratchet (InitialKeys (..), PQEncryption (..), PQ
|
||||
import qualified Simplex.Messaging.Crypto.Ratchet as CR
|
||||
import Simplex.Messaging.Encoding.String
|
||||
import Simplex.Messaging.Notifications.Transport (NTFVersion, pattern VersionNTF, authBatchCmdsNTFVersion)
|
||||
import Simplex.Messaging.Protocol (AProtocolType (..), BasicAuth, ErrorType (..), MsgBody, ProtocolServer (..), SubscriptionMode (..), supportedSMPClientVRange)
|
||||
import Simplex.Messaging.Protocol (BasicAuth, ErrorType (..), MsgBody, ProtocolServer (..), SubscriptionMode (..), supportedSMPClientVRange)
|
||||
import qualified Simplex.Messaging.Protocol as SMP
|
||||
import Simplex.Messaging.Server.Env.STM (ServerConfig (..))
|
||||
import Simplex.Messaging.Server.Expiration
|
||||
@@ -96,14 +96,6 @@ import XFTPClient (testXFTPServer)
|
||||
|
||||
type AEntityTransmission e = (ACorrId, ConnId, ACommand 'Agent e)
|
||||
|
||||
deriving instance Eq (ACommand p e)
|
||||
|
||||
instance Eq AConnectionMode where
|
||||
ACM m == ACM m' = isJust $ testEquality m m'
|
||||
|
||||
instance Eq AProtocolType where
|
||||
AProtocolType p == AProtocolType p' = isJust $ testEquality p p'
|
||||
|
||||
-- deriving instance Eq (ValidFileDescription p)
|
||||
|
||||
(##>) :: (HasCallStack, MonadUnliftIO m) => m (AEntityTransmission e) -> AEntityTransmission e -> m ()
|
||||
|
||||
Reference in new issue
Block a user