http3-0.0.0: Network/HTTP3/Stream.hs
module Network.HTTP3.Stream where
import Network.QUIC (StreamId)
import Imports
data H3StreamType = H3ControlStreams
| H3PushStreams
| QPACKEncoderStream
| QPACKDecoderStream
| H3StreamTypeUnknown Int64
deriving (Eq, Show)
fromH3StreamType :: H3StreamType -> Int64
fromH3StreamType H3ControlStreams = 0x00
fromH3StreamType H3PushStreams = 0x01
fromH3StreamType QPACKEncoderStream = 0x02
fromH3StreamType QPACKDecoderStream = 0x03
fromH3StreamType (H3StreamTypeUnknown i) = i
toH3StreamType :: Int64 -> H3StreamType
toH3StreamType 0x00 = H3ControlStreams
toH3StreamType 0x01 = H3PushStreams
toH3StreamType 0x02 = QPACKEncoderStream
toH3StreamType 0x03 = QPACKDecoderStream
toH3StreamType i = H3StreamTypeUnknown i
clientControlStream,clientEncoderStream,clientDecoderStream :: StreamId
clientControlStream = 2
clientEncoderStream = 6
clientDecoderStream = 10
serverControlStream,serverEncoderStream,serverDecoderStream :: StreamId
serverControlStream = 3
serverEncoderStream = 7
serverDecoderStream = 11