Skip to content
Snippets Groups Projects
Unverified Commit 7ccb3c8d authored by Erik Fong's avatar Erik Fong
Browse files

Consolidated the debug units into a single struct implementation.

parent de043248
No related branches found
No related tags found
No related merge requests found
......@@ -104,37 +104,21 @@ impl Gps {
impl Debug for Gps {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
f.debug_struct("Gps")
.field("latitude", &DebugDegreesUnits(self.latitude()))
.field("longitude", &DebugDegreesUnits(self.longitude()))
.field("altitude", &DebugMeterUnits(self.altitude))
.field("max_error", &DebugMeterUnits(self.max_error))
.field("heading", &DebugDegreesUnits(self.heading()))
.field("speed", &DebugMeterPerSecondUnits(self.speed))
.field("latitude", &DebugUnits(self.latitude(), "°"))
.field("longitude", &DebugUnits(self.longitude(), "°"))
.field("altitude", &DebugUnits(self.altitude, " m"))
.field("max_error", &DebugUnits(self.max_error, " m"))
.field("heading", &DebugUnits(self.heading(), "°"))
.field("speed", &DebugUnits(self.speed, " m/s"))
.finish()
}
}
struct DebugDegreesUnits<T>(T);
struct DebugUnits<'a, T>(T, &'a str);
impl<T: Display> Debug for DebugDegreesUnits<T> {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
write!(f, "{}°", self.0)
}
}
struct DebugMeterUnits<T>(T);
impl<T: Display> Debug for DebugMeterUnits<T> {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
write!(f, "{} m", self.0)
}
}
struct DebugMeterPerSecondUnits<T>(T);
impl<T: Display> Debug for DebugMeterPerSecondUnits<T> {
fn fmt(&self, f: &mut core::fmt::Formatter) -> core::fmt::Result {
write!(f, "{} m/s", self.0)
impl<'a, T: Display> Debug for DebugUnits<'a, T> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(f, "{}{}", self.0, self.1)
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment