Implement to native endian functions as a trait for u32/u64
This commit is contained in:
1 parent
6119408e1f
commit
62bd482acb
3 files changed
+31
-13
No files matched your search
@@ -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()
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user