Coverage Report

Created: 2026-05-16 07:38

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/suricata7/rust/src/rdp/error.rs
Line
Count
Source
1
/* Copyright (C) 2019 Open Information Security Foundation
2
 *
3
 * You can copy, redistribute or modify this Program under the terms of
4
 * the GNU General Public License version 2 as published by the Free
5
 * Software Foundation.
6
 *
7
 * This program is distributed in the hope that it will be useful,
8
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10
 * GNU General Public License for more details.
11
 *
12
 * You should have received a copy of the GNU General Public License
13
 * version 2 along with this program; if not, write to the Free Software
14
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
15
 * 02110-1301, USA.
16
 */
17
18
// Author: Zach Kelly <zach.kelly@lmco.com>
19
// Author: Pierre Chifflier <chifflier@wzdftpd.net>
20
use nom7::error::{Error, ErrorKind, ParseError};
21
use nom7::ErrorConvert;
22
23
#[derive(Debug, PartialEq, Eq)]
24
pub enum RdpError {
25
    UnimplementedLengthDeterminant,
26
    NotX224Class0Error,
27
    NomError(ErrorKind),
28
}
29
30
impl<I> ParseError<I> for RdpError {
31
1.65M
    fn from_error_kind(_input: I, kind: ErrorKind) -> Self {
32
1.65M
        RdpError::NomError(kind)
33
1.65M
    }
34
0
    fn append(_input: I, kind: ErrorKind, _other: Self) -> Self {
35
0
        RdpError::NomError(kind)
36
0
    }
37
}
38
39
impl From<Error<&[u8]>> for RdpError {
40
10.3k
    fn from(e: Error<&[u8]>) -> Self {
41
10.3k
        RdpError::NomError(e.code)
42
10.3k
    }
43
}
44
45
impl ErrorConvert<RdpError> for ((&[u8], usize), ErrorKind) {
46
0
    fn convert(self) -> RdpError {
47
0
        RdpError::NomError(self.1)
48
0
    }
49
}