diff options
Diffstat (limited to 'src/Erebos/Network.hs')
| -rw-r--r-- | src/Erebos/Network.hs | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/Erebos/Network.hs b/src/Erebos/Network.hs index 92f62ff..c2a714e 100644 --- a/src/Erebos/Network.hs +++ b/src/Erebos/Network.hs @@ -180,6 +180,8 @@ instance Eq Peer where class (Eq addr, Ord addr, Show addr, Typeable addr) => PeerAddressType addr where sendBytesToAddress :: addr -> ByteString -> IO () connectionToAddressClosed :: addr -> IO () + isReliableTransport :: proxy addr -> Bool + isReliableTransport _ = False data PeerAddress = forall addr. PeerAddressType addr => CustomPeerAddress addr @@ -208,6 +210,11 @@ instance Ord PeerAddress where compare (DatagramAddress addr) (DatagramAddress addr') = compare addr addr' +instance ProtocolAddressType PeerAddress where + addrIsReliableTransport = \case + CustomPeerAddress (_ :: a) -> isReliableTransport (Proxy @a) + DatagramAddress _ -> False + data PeerIdentity = PeerIdentityUnknown (TVar [ UnifiedIdentity -> ExceptT ErebosError IO () ]) |