module Network.HPACK (
ByteStream
, HeaderSet
, Context
, newContext
, DecodeError(..)
, encodeRequestHeader
, decodeRequestHeader
, encodeResponseHeader
, decodeResponseHeader
) where
import Control.Applicative ((<$>))
import Control.Arrow (first)
import Network.HPACK.Context
import Network.HPACK.HeaderBlock
import Network.HPACK.Huffman
import Network.HPACK.Types
encodeRequestHeader :: HeaderSet
-> Context
-> IO (ByteStream, Context)
encodeRequestHeader hs ctx =
first (toByteStream huffmanEncodeInRequest) <$> toHeaderBlock hs ctx
decodeRequestHeader :: ByteStream
-> Context
-> IO (HeaderSet, Context)
decodeRequestHeader bs ctx =
fromHeaderBlock (fromByteStream huffmanDecodeInRequest bs) ctx
encodeResponseHeader :: HeaderSet
-> Context
-> IO (ByteStream, Context)
encodeResponseHeader hs ctx =
first (toByteStream huffmanEncodeInResponse) <$> toHeaderBlock hs ctx
decodeResponseHeader :: ByteStream
-> Context
-> IO (HeaderSet, Context)
decodeResponseHeader bs ctx =
fromHeaderBlock (fromByteStream huffmanDecodeInResponse bs) ctx