From 0079e5d75816da46a59521959d5e6ce0d2c3d476 Mon Sep 17 00:00:00 2001 From: lkoester Date: Thu, 26 Jan 2023 19:24:41 +0100 Subject: [PATCH 1/3] fixed implementation of partialeq --- src/tm.rs | 30 +++++++++++++++++++++++++++--- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/src/tm.rs b/src/tm.rs index 8bcc932..5a1af3a 100644 --- a/src/tm.rs +++ b/src/tm.rs @@ -202,7 +202,7 @@ impl<'slice> TryFrom> for PusTmSecondaryHeader<'slice /// /// * `'src_data` - Life time of a buffer where the user provided time stamp and source data will /// be serialized into. -#[derive(PartialEq, Eq, Debug, Copy, Clone)] +#[derive(Eq, Debug, Copy, Clone)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] pub struct PusTm<'src_data> { pub sp_header: SpHeader, @@ -443,6 +443,14 @@ impl<'src_data> PusTm<'src_data> { } } +impl PartialEq for PusTm<'_> { + fn eq(&self, other: &Self) -> bool { + self.sp_header == other.sp_header + && self.sec_header == other.sec_header + && self.source_data == other.source_data + } +} + //noinspection RsTraitImplementation impl CcsdsPacket for PusTm<'_> { ccsds_impl!(); @@ -485,8 +493,8 @@ mod tests { fn base_ping_reply_full_ctor(timestamp: &[u8]) -> PusTm { let mut sph = SpHeader::tm_unseg(0x123, 0x234, 0).unwrap(); - let tc_header = PusTmSecondaryHeader::new_simple(17, 2, ×tamp); - PusTm::new(&mut sph, tc_header, None, true) + let tm_header = PusTmSecondaryHeader::new_simple(17, 2, ×tamp); + PusTm::new(&mut sph, tm_header, None, true) } fn base_hk_reply<'a>(timestamp: &'a [u8], src_data: &'a [u8]) -> PusTm<'a> { @@ -680,4 +688,20 @@ mod tests { assert_eq!(tm.msg_counter(), 0x0000); assert_eq!(tm.sc_time_ref_status(), 0b0000); } + + #[test] + fn partial_eq_pus_tc() { + let timestamp = dummy_timestamp(); + let pus_tm = base_ping_reply_full_ctor(timestamp); + assert_eq!(pus_tm, pus_tm); + } + + #[test] + fn partial_eq_serialized_vs_derialized() { + let timestamp = dummy_timestamp(); + let pus_tm = base_ping_reply_full_ctor(timestamp); + let mut buf = [0; 32]; + let size = pus_tm.write_to_bytes(&mut buf).unwrap(); + assert_eq!(pus_tm, PusTm::from_bytes(&buf, timestamp.len()).unwrap().0); + } } From db1918e2ca3819b1138b3c7dafcc081f8089f88c Mon Sep 17 00:00:00 2001 From: lkoester Date: Thu, 26 Jan 2023 19:25:12 +0100 Subject: [PATCH 2/3] updated changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 37f2ccb..054931b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,7 +14,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## Fixed -- Correct implementation of Trait `PartialEq` for `PusTc`. +- Correct implementation of Trait `PartialEq` for `PusTc` and `PusTm`. # [v0.5.1] 2023-01-22 From 6c5f454728c043de074d130b1f8ab0046a6a12e4 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Thu, 26 Jan 2023 21:11:03 +0100 Subject: [PATCH 3/3] clippy fixes --- src/tc.rs | 2 +- src/tm.rs | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/tc.rs b/src/tc.rs index 91284e0..bce69ab 100644 --- a/src/tc.rs +++ b/src/tc.rs @@ -757,7 +757,7 @@ mod tests { fn partial_eq_serialized_vs_derialized() { let pus_tc = base_ping_tc_simple_ctor(); let mut buf = [0; 32]; - let size = pus_tc.write_to_bytes(&mut buf).unwrap(); + pus_tc.write_to_bytes(&mut buf).unwrap(); assert_eq!(pus_tc, PusTc::from_bytes(&buf).unwrap().0); } } diff --git a/src/tm.rs b/src/tm.rs index 5a1af3a..d9f435a 100644 --- a/src/tm.rs +++ b/src/tm.rs @@ -690,10 +690,11 @@ mod tests { } #[test] - fn partial_eq_pus_tc() { + fn partial_eq_pus_tm() { let timestamp = dummy_timestamp(); - let pus_tm = base_ping_reply_full_ctor(timestamp); - assert_eq!(pus_tm, pus_tm); + let pus_tm_1 = base_ping_reply_full_ctor(timestamp); + let pus_tm_2 = base_ping_reply_full_ctor(timestamp); + assert_eq!(pus_tm_1, pus_tm_2); } #[test] @@ -701,7 +702,7 @@ mod tests { let timestamp = dummy_timestamp(); let pus_tm = base_ping_reply_full_ctor(timestamp); let mut buf = [0; 32]; - let size = pus_tm.write_to_bytes(&mut buf).unwrap(); + pus_tm.write_to_bytes(&mut buf).unwrap(); assert_eq!(pus_tm, PusTm::from_bytes(&buf, timestamp.len()).unwrap().0); } }