Coverage Report

Created: 2026-08-31 06:59

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/h2/src/frame/reset.rs
Line
Count
Source
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
21.1k
    pub fn new(stream_id: StreamId, error: Reason) -> Reset {
13
21.1k
        Reset {
14
21.1k
            stream_id,
15
21.1k
            error_code: error,
16
21.1k
        }
17
21.1k
    }
18
19
1.43k
    pub fn stream_id(&self) -> StreamId {
20
1.43k
        self.stream_id
21
1.43k
    }
22
23
320
    pub fn reason(&self) -> Reason {
24
320
        self.error_code
25
320
    }
26
27
1.11k
    pub fn load(head: Head, payload: &[u8]) -> Result<Reset, Error> {
28
1.11k
        if payload.len() != 4 {
29
3
            return Err(Error::InvalidPayloadLength);
30
1.11k
        }
31
32
1.11k
        let error_code = unpack_octets_4!(payload, 0, u32);
33
34
1.11k
        Ok(Reset {
35
1.11k
            stream_id: head.stream_id(),
36
1.11k
            error_code: error_code.into(),
37
1.11k
        })
38
1.11k
    }
39
40
2.20k
    pub fn encode<B: BufMut>(&self, dst: &mut B) {
41
2.20k
        tracing::trace!(
42
0
            "encoding RESET; id={:?} code={:?}",
43
            self.stream_id,
44
            self.error_code
45
        );
46
2.20k
        let head = Head::new(Kind::Reset, 0, self.stream_id);
47
2.20k
        head.encode(4, dst);
48
2.20k
        dst.put_u32(self.error_code.into());
49
2.20k
    }
Unexecuted instantiation: <h2::frame::reset::Reset>::encode::<bytes::bytes_mut::BytesMut>
<h2::frame::reset::Reset>::encode::<bytes::bytes_mut::BytesMut>
Line
Count
Source
40
2.20k
    pub fn encode<B: BufMut>(&self, dst: &mut B) {
41
2.20k
        tracing::trace!(
42
0
            "encoding RESET; id={:?} code={:?}",
43
            self.stream_id,
44
            self.error_code
45
        );
46
2.20k
        let head = Head::new(Kind::Reset, 0, self.stream_id);
47
2.20k
        head.encode(4, dst);
48
2.20k
        dst.put_u32(self.error_code.into());
49
2.20k
    }
50
}
51
52
impl<B> From<Reset> for frame::Frame<B> {
53
24.1k
    fn from(src: Reset) -> Self {
54
24.1k
        frame::Frame::Reset(src)
55
24.1k
    }
<h2::frame::Frame as core::convert::From<h2::frame::reset::Reset>>::from
Line
Count
Source
53
22.0k
    fn from(src: Reset) -> Self {
54
22.0k
        frame::Frame::Reset(src)
55
22.0k
    }
<h2::frame::Frame<h2::proto::streams::prioritize::Prioritized<bytes::bytes::Bytes>> as core::convert::From<h2::frame::reset::Reset>>::from
Line
Count
Source
53
2.03k
    fn from(src: Reset) -> Self {
54
2.03k
        frame::Frame::Reset(src)
55
2.03k
    }
56
}