From fa7f753b99d09cb59f110854d42d7f9104cf4f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sat, 1 Aug 2026 10:26:11 +0200 Subject: Option for PeerAddressType to mark it as reliable Changelog: Added API to mark a custom underlying transport layer as reliable. --- src/Erebos/Network.hs | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/Erebos/Network.hs') 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 () ]) -- cgit v1.2.3