{-# LANGUAGE PatternSynonyms #-}
module Network.QUIC (
Connection,
abortConnection,
Stream,
StreamId,
streamId,
isClientInitiatedBidirectional,
isServerInitiatedBidirectional,
isClientInitiatedUnidirectional,
isServerInitiatedUnidirectional,
stream,
unidirectionalStream,
acceptStream,
closeStream,
shutdownStream,
resetStream,
stopStream,
recvStream,
sendStream,
sendStreamMany,
ConnectionInfo,
getConnectionInfo,
version,
cipher,
alpn,
handshakeMode,
retry,
localSockAddr,
remoteSockAddr,
localCID,
remoteCID,
ConnectionStats,
getConnectionStats,
txBytes,
rxBytes,
wait0RTTReady,
wait1RTTReady,
waitEstablished,
QUICException (..),
TransportError (
..,
NoError,
InternalError,
ConnectionRefused,
FlowControlError,
StreamLimitError,
StreamStateError,
FinalSizeError,
FrameEncodingError,
TransportParameterError,
ConnectionIdLimitError,
ProtocolViolation,
InvalidToken,
ApplicationError,
CryptoBufferExceeded,
KeyUpdateError,
AeadLimitReached,
NoViablePath
),
cryptoError,
ApplicationProtocolError (..),
) where
import Network.QUIC.Connection
import Network.QUIC.IO
import Network.QUIC.Info
import Network.QUIC.Stream
import Network.QUIC.Types
import Network.QUIC.Types.Info