1use ls_qpack::decoder::Decoder;
2use ls_qpack::encoder::Encoder;
3use ls_qpack::StreamId;
4
5const HEADERS: [(&str, &str); 3] = [(":status", "404"), ("foo", "bar"), ("foo", "bar")];
6
7fn main() {
8 let mut encoder = Encoder::new();
9 let sdtc_data = encoder.configure(1024, 1024, 1).unwrap();
10
11 let (encoded_hdr_data, encoded_stream_data) = encoder
12 .encode_all(StreamId::new(0), HEADERS)
13 .unwrap()
14 .into();
15
16 println!("Encoding ratio: {}", encoder.ratio());
17
18 let mut decoder = Decoder::new(1024, 1);
19 decoder.feed(sdtc_data).unwrap();
20
21 let decoder_status = decoder.decode(StreamId::new(0), encoded_hdr_data).unwrap();
22
23 assert!(decoder_status.is_blocked());
24 println!("Decoder blocked. Stream data needed");
25
26 decoder.feed(encoded_stream_data).unwrap();
27
28 let decoded_hdr = decoder
29 .unblocked(StreamId::new(0))
30 .unwrap()
31 .unwrap()
32 .take()
33 .unwrap();
34
35 println!("Decoded header: {:?}", decoded_hdr);
36}