Module fluke_hpack::decoder
source · Expand description
Exposes the struct Decoder
that allows for HPACK-encoded header blocks to
be decoded into a header list.
The decoder only follows HPACK rules, without performing any additional (semantic) checks on the header name/value pairs, i.e. it considers the headers as opaque octets.
§Example
A simple example of using the decoder that demonstrates its API:
use fluke_hpack::Decoder;
let mut decoder = Decoder::new();
let header_list = decoder.decode(&[0x82, 0x84]).unwrap();
assert_eq!(header_list, [
(b":method".to_vec(), b"GET".to_vec()),
(b":path".to_vec(), b"/".to_vec()),
]);
A more complex example where the callback API is used, providing the client a borrowed representation of each header, rather than an owned representation.
use fluke_hpack::Decoder;
let mut decoder = Decoder::new();
let mut count = 0;
let header_list = decoder.decode_with_cb(&[0x82, 0x84], |name, value| {
count += 1;
match count {
1 => {
assert_eq!(&name[..], &b":method"[..]);
assert_eq!(&value[..], &b"GET"[..]);
},
2 => {
assert_eq!(&name[..], &b":path"[..]);
assert_eq!(&value[..], &b"/"[..]);
},
_ => panic!("Did not expect more than two headers!"),
};
});
Structs§
- Decodes headers encoded using HPACK.
Enums§
- Represents all errors that can be encountered while performing the decoding of an HPACK header set.
- Represents all errors that can be encountered while decoding an integer.
- Represents all errors that can be encountered while decoding an octet string.
Type Aliases§
- The result returned by the
decode
method of theDecoder
.