Coverage Report

Created: 2025-11-24 06:23

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
54.3k
    pub fn new(stream_id: StreamId, error: Reason) -> Reset {
13
54.3k
        Reset {
14
54.3k
            stream_id,
15
54.3k
            error_code: error,
16
54.3k
        }
17
54.3k
    }
18
19
1.92k
    pub fn stream_id(&self) -> StreamId {
20
1.92k
        self.stream_id
21
1.92k
    }
22
23
553
    pub fn reason(&self) -> Reason {
24
553
        self.error_code
25
553
    }
26
27
1.38k
    pub fn load(head: Head, payload: &[u8]) -> Result<Reset, Error> {
28
1.38k
        if payload.len() != 4 {
29
12
            return Err(Error::InvalidPayloadLength);
30
1.36k
        }
31
32
1.36k
        let error_code = unpack_octets_4!(payload, 0, u32);
33
34
1.36k
        Ok(Reset {
35
1.36k
            stream_id: head.stream_id(),
36
1.36k
            error_code: error_code.into(),
37
1.36k
        })
38
1.38k
    }
39
40
1.77k
    pub fn encode<B: BufMut>(&self, dst: &mut B) {
41
1.77k
        tracing::trace!(
42
0
            "encoding RESET; id={:?} code={:?}",
43
            self.stream_id,
44
            self.error_code
45
        );
46
1.77k
        let head = Head::new(Kind::Reset, 0, self.stream_id);
47
1.77k
        head.encode(4, dst);
48
1.77k
        dst.put_u32(self.error_code.into());
49
1.77k
    }
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.77k
    pub fn encode<B: BufMut>(&self, dst: &mut B) {
41
1.77k
        tracing::trace!(
42
0
            "encoding RESET; id={:?} code={:?}",
43
            self.stream_id,
44
            self.error_code
45
        );
46
1.77k
        let head = Head::new(Kind::Reset, 0, self.stream_id);
47
1.77k
        head.encode(4, dst);
48
1.77k
        dst.put_u32(self.error_code.into());
49
1.77k
    }
50
}
51
52
impl<B> From<Reset> for frame::Frame<B> {
53
57.3k
    fn from(src: Reset) -> Self {
54
57.3k
        frame::Frame::Reset(src)
55
57.3k
    }
<h2::frame::Frame as core::convert::From<h2::frame::reset::Reset>>::from
Line
Count
Source
53
55.6k
    fn from(src: Reset) -> Self {
54
55.6k
        frame::Frame::Reset(src)
55
55.6k
    }
<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.70k
    fn from(src: Reset) -> Self {
54
1.70k
        frame::Frame::Reset(src)
55
1.70k
    }
56
}