• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 use super::*;
2 
3 /// ICMPv6 parameter problem header.
4 #[derive(Clone, Copy, Debug, PartialEq, Eq)]
5 pub struct ParameterProblemHeader {
6     /// The code can offer additional informations about what kind of parameter
7     /// problem caused the error.
8     pub code: ParameterProblemCode,
9     /// Identifies the octet offset within the
10     /// invoking packet where the error was detected.
11     ///
12     /// The pointer will point beyond the end of the ICMPv6
13     /// packet if the field in error is beyond what can fit
14     /// in the maximum size of an ICMPv6 error message.
15     pub pointer: u32,
16 }
17 
18 #[cfg(test)]
19 mod test {
20     use super::*;
21     use alloc::format;
22 
23     #[test]
clone_eq()24     fn clone_eq() {
25         let value = ParameterProblemHeader {
26             code: ParameterProblemCode::ErroneousHeaderField,
27             pointer: 0,
28         };
29         assert_eq!(value.clone(), value);
30     }
31 
32     #[test]
debug()33     fn debug() {
34         let value = ParameterProblemHeader {
35             code: ParameterProblemCode::ErroneousHeaderField,
36             pointer: 0,
37         };
38 
39         assert_eq!(
40             format!("{:?}", value),
41             format!(
42                 "ParameterProblemHeader {{ code: {:?}, pointer: {:?} }}",
43                 value.code, value.pointer
44             )
45         );
46     }
47 }
48