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