http2-1.6.0: HTTP/2.0 library including frames and HPACK

Safe HaskellNone
LanguageHaskell2010

Network.HPACK.Token

Contents

Synopsis

Data type

data Token

Internal representation for header keys.

Constructors

Token 

Fields

ix :: !Int

Index for value table

shouldBeIndexed :: !Bool

should be indexed in HPACK

isPseudo :: !Bool

is this a pseudo header key?

tokenKey :: !(CI ByteString)

Case insensitive header key

Instances

tokenIx :: Token -> Int

Extracting an index from a token.

tokenCIKey :: Token -> ByteString

Extracting a case insensitive header key from a token.

tokenFoldedKey :: Token -> ByteString

Extracting a folded header key from a token.

toToken :: ByteString -> Token

Making a token from a header key.

>>> toToken ":authority" == tokenAuthority
True
>>> toToken "foo"
Token {ix = 54, shouldBeIndexed = True, isPseudo = False, tokenKey = "foo"}
>>> toToken ":bar"
Token {ix = 54, shouldBeIndexed = True, isPseudo = True, tokenKey = ":bar"}

Ix

minTokenIx :: Int

Minimum token index.

maxStaticTokenIx :: Int

Maximun token index defined in the static table.

maxTokenIx :: Int

Maximum token index.

cookieTokenIx :: Int

Token index for tokenCookie.

Utilities

isMaxTokenIx :: Int -> Bool

Is this token ix to be held in the place holder?

isCookieTokenIx :: Int -> Bool

Is this token ix for Cookie?

isStaticTokenIx :: Int -> Bool

Is this token ix for a header not defined in the static table?

isStaticToken :: Token -> Bool

Is this token for a header not defined in the static table?

Defined tokens

tokenConnection :: Token

Not defined in the static table.

tokenTE :: Token

Not defined in the static table.

tokenMax :: Token

A place holder to hold header keys not defined in the static table.