Implement to native endian functions as a trait for u32/u64

This commit is contained in:
Nils Andreas Svee committed 2022-10-13 18:52:13 +02:00
1 parent 6119408e1f
commit 62bd482acb
3 files changed
+31 -13

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
pub trait ToNativeEndian {
fn to_ne(self) -> Self;
}
impl ToNativeEndian for u32 {
#[cfg(target_endian = "big")]
fn to_ne(self) -> Self {
self.to_be()
}
#[cfg(target_endian = "little")]
fn to_ne(self) -> Self {
self.to_le()
}
}
impl ToNativeEndian for u64 {
#[cfg(target_endian = "big")]
fn to_ne(self) -> Self {
self.to_be()
}
#[cfg(target_endian = "little")]
fn to_ne(self) -> Self {
self.to_le()
}
}
+4 -3
View File
@@ -1,5 +1,6 @@
use std::net::IpAddr;
use crate::endian::ToNativeEndian;
use crate::pinger::{PingError, PingListener, PingReply, PingSender};
use crate::utils::Utils;
use etherparse::icmpv4::TimestampMessage;
@@ -30,9 +31,9 @@ impl PingListener for PingerICMPTimestampListener {
let time_since_midnight: i64 = (time_now.tv_sec() as i64 % 86400 * 1000)
+ (time_now.tv_nsec() as i64 / 1000000);
let originate_timestamp = Utils::to_ne(reply.originate_timestamp);
let receive_timestamp = Utils::to_ne(reply.receive_timestamp);
let transmit_timestamp = Utils::to_ne(reply.transmit_timestamp);
let originate_timestamp = reply.originate_timestamp.to_ne();
let receive_timestamp = reply.receive_timestamp.to_ne();
let transmit_timestamp = reply.transmit_timestamp.to_ne();
let rtt: i64 = time_since_midnight - originate_timestamp as i64;
let dl_time: i64 = time_since_midnight - transmit_timestamp as i64;
-10
View File
@@ -21,14 +21,4 @@ impl Utils {
let time = clock_gettime(ClockId::CLOCK_MONOTONIC)?;
Ok((time.tv_sec() as f64, time.tv_nsec() as f64))
}
#[cfg(target_endian = "big")]
pub fn to_ne(val: u64) -> u64 {
val.to_be()
}
#[cfg(target_endian = "little")]
pub fn to_ne(val: u32) -> u32 {
val.to_le()
}
}