| @@ -98,6 +98,7 @@ const ALL: u8 = END_STREAM | ||||
| // ===== impl Headers ===== | ||||
|  | ||||
| impl Headers { | ||||
|     /// Create a new HEADERS frame | ||||
|     pub fn new(stream_id: StreamId, pseudo: Pseudo, fields: HeaderMap) -> Self { | ||||
|         Headers { | ||||
|             stream_id: stream_id, | ||||
| @@ -108,6 +109,19 @@ impl Headers { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     pub fn trailers(stream_id: StreamId, fields: HeaderMap) -> Self { | ||||
|         let mut flags = HeadersFlag::default(); | ||||
|         flags.set_end_stream(); | ||||
|  | ||||
|         Headers { | ||||
|             stream_id, | ||||
|             stream_dep: None, | ||||
|             fields: fields, | ||||
|             pseudo: Pseudo::default(), | ||||
|             flags: flags, | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     /// Loads the header frame but doesn't actually do HPACK decoding. | ||||
|     /// | ||||
|     /// HPACK decoding is done in the `load_hpack` step. | ||||
| @@ -290,6 +304,10 @@ impl Headers { | ||||
|         Ok(request) | ||||
|     } | ||||
|  | ||||
|     pub fn into_fields(self) -> HeaderMap { | ||||
|         self.fields | ||||
|     } | ||||
|  | ||||
|     pub fn encode(self, encoder: &mut hpack::Encoder, dst: &mut BytesMut) | ||||
|         -> Option<Continuation> | ||||
|     { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user