123456789101112131415161718192021222324252627282930313233343536373839 |
- # -*- coding: utf-8 -*-
- """
- hpack/struct
- ~~~~~~~~~~~~
- Contains structures for representing header fields with associated metadata.
- """
- class HeaderTuple(tuple):
- """
- A data structure that stores a single header field.
- HTTP headers can be thought of as tuples of ``(field name, field value)``.
- A single header block is a sequence of such tuples.
- In HTTP/2, however, certain bits of additional information are required for
- compressing these headers: in particular, whether the header field can be
- safely added to the HPACK compression context.
- This class stores a header that can be added to the compression context. In
- all other ways it behaves exactly like a tuple.
- """
- __slots__ = ()
- indexable = True
- def __new__(_cls, *args):
- return tuple.__new__(_cls, args)
- class NeverIndexedHeaderTuple(HeaderTuple):
- """
- A data structure that stores a single header field that cannot be added to
- a HTTP/2 header compression context.
- """
- __slots__ = ()
- indexable = False
|