/src/h2/src/frame/reset.rs
Line | Count | Source (jump to first uncovered line) |
1 | | use crate::frame::{self, Error, Head, Kind, Reason, StreamId}; |
2 | | |
3 | | use bytes::BufMut; |
4 | | |
5 | | #[derive(Copy, Clone, Debug, Eq, PartialEq)] |
6 | | pub struct Reset { |
7 | | stream_id: StreamId, |
8 | | error_code: Reason, |
9 | | } |
10 | | |
11 | | impl Reset { |
12 | 26.7k | pub fn new(stream_id: StreamId, error: Reason) -> Reset { |
13 | 26.7k | Reset { |
14 | 26.7k | stream_id, |
15 | 26.7k | error_code: error, |
16 | 26.7k | } |
17 | 26.7k | } |
18 | | |
19 | 2.01k | pub fn stream_id(&self) -> StreamId { |
20 | 2.01k | self.stream_id |
21 | 2.01k | } |
22 | | |
23 | 691 | pub fn reason(&self) -> Reason { |
24 | 691 | self.error_code |
25 | 691 | } |
26 | | |
27 | 1.32k | pub fn load(head: Head, payload: &[u8]) -> Result<Reset, Error> { |
28 | 1.32k | if payload.len() != 4 { |
29 | 5 | return Err(Error::InvalidPayloadLength); |
30 | 1.32k | } |
31 | 1.32k | |
32 | 1.32k | let error_code = unpack_octets_4!(payload, 0, u32); |
33 | 1.32k | |
34 | 1.32k | Ok(Reset { |
35 | 1.32k | stream_id: head.stream_id(), |
36 | 1.32k | error_code: error_code.into(), |
37 | 1.32k | }) |
38 | 1.32k | } |
39 | | |
40 | 1.94k | pub fn encode<B: BufMut>(&self, dst: &mut B) { |
41 | 1.94k | tracing::trace!( |
42 | 0 | "encoding RESET; id={:?} code={:?}", |
43 | | self.stream_id, |
44 | | self.error_code |
45 | | ); |
46 | 1.94k | let head = Head::new(Kind::Reset, 0, self.stream_id); |
47 | 1.94k | head.encode(4, dst); |
48 | 1.94k | dst.put_u32(self.error_code.into()); |
49 | 1.94k | } Unexecuted instantiation: <h2::frame::reset::Reset>::encode::<_> Unexecuted instantiation: <h2::frame::reset::Reset>::encode::<bytes::bytes_mut::BytesMut> <h2::frame::reset::Reset>::encode::<bytes::bytes_mut::BytesMut> Line | Count | Source | 40 | 1.94k | pub fn encode<B: BufMut>(&self, dst: &mut B) { | 41 | 1.94k | tracing::trace!( | 42 | 0 | "encoding RESET; id={:?} code={:?}", | 43 | | self.stream_id, | 44 | | self.error_code | 45 | | ); | 46 | 1.94k | let head = Head::new(Kind::Reset, 0, self.stream_id); | 47 | 1.94k | head.encode(4, dst); | 48 | 1.94k | dst.put_u32(self.error_code.into()); | 49 | 1.94k | } |
|
50 | | } |
51 | | |
52 | | impl<B> From<Reset> for frame::Frame<B> { |
53 | 29.7k | fn from(src: Reset) -> Self { |
54 | 29.7k | frame::Frame::Reset(src) |
55 | 29.7k | } <h2::frame::Frame as core::convert::From<h2::frame::reset::Reset>>::from Line | Count | Source | 53 | 27.9k | fn from(src: Reset) -> Self { | 54 | 27.9k | frame::Frame::Reset(src) | 55 | 27.9k | } |
<h2::frame::Frame<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>> as core::convert::From<h2::frame::reset::Reset>>::from Line | Count | Source | 53 | 1.84k | fn from(src: Reset) -> Self { | 54 | 1.84k | frame::Frame::Reset(src) | 55 | 1.84k | } |
|
56 | | } |