Coverage Report

Created: 2025-08-28 07:05

/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
}