diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-08-01 10:26:11 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-08-01 21:44:50 +0200 |
| commit | fa7f753b99d09cb59f110854d42d7f9104cf4f4d (patch) | |
| tree | 6fef8c1c2705f5ba80ab7d95ac8b24fa948b36c5 /src/Erebos/Network.hs | |
| parent | 8f1b6ef7f6b68931e961bf1725c5f8c711c278ff (diff) | |
Option for PeerAddressType to mark it as reliable
Changelog: Added API to mark a custom underlying transport layer as reliable.
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 () ]) |