Module hpack::encoder [−][src]
Implements all functionality related to encoding header blocks using HPACK.
Clients should use the Encoder
struct as the API for performing HPACK
encoding.
Examples
Encodes a header using a literal encoding.
use hpack::Encoder; let mut encoder = Encoder::new(); let headers = vec![ (b"custom-key".to_vec(), b"custom-value".to_vec()), ]; // First encoding... let result = encoder.encode(&headers); // The result is a literal encoding of the header name and value, with an // initial byte representing the type of the encoding // (incremental indexing). assert_eq!( vec![0x40, 10, b'c', b'u', b's', b't', b'o', b'm', b'-', b'k', b'e', b'y', 12, b'c', b'u', b's', b't', b'o', b'm', b'-', b'v', b'a', b'l', b'u', b'e'], result);
Encodes some pseudo-headers that are already found in the static table.
use hpack::Encoder; let mut encoder = Encoder::new(); let headers = vec![ (b":method".to_vec(), b"GET".to_vec()), (b":path".to_vec(), b"/".to_vec()), ]; // The headers are encoded by providing their index (with a bit flag // indicating that the indexed representation is used). assert_eq!(encoder.encode(&headers), vec![2 | 0x80, 4 | 0x80]);
Structs
Encoder |
Represents an HPACK encoder. Allows clients to encode arbitrary header sets and tracks the encoding context. That is, encoding subsequent header sets will use the context built by previous encode calls. |
Functions
encode_integer |
Encode an integer to the representation defined by HPACK. |