From f206dab653f34a7362c5050fce0e637e17c64004 Mon Sep 17 00:00:00 2001 From: Jeremy Soller Date: Wed, 6 Dec 2017 20:12:02 -0700 Subject: [PATCH] Fix error with borrowing packed fields --- src/ex_node.rs | 12 +++++++----- src/header.rs | 18 ++++++++++-------- src/node.rs | 26 ++++++++++++++------------ 3 files changed, 31 insertions(+), 25 deletions(-) diff --git a/src/ex_node.rs b/src/ex_node.rs index 0377ee3abe..faa3e34fa0 100644 --- a/src/ex_node.rs +++ b/src/ex_node.rs @@ -28,11 +28,13 @@ impl ExNode { impl fmt::Debug for ExNode { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let extents: Vec<&Extent> = self.extents.iter().filter(|extent| -> bool { extent.length > 0 }).collect(); - f.debug_struct("ExNode") - .field("prev", &self.prev) - .field("next", &self.next) - .field("extents", &extents) - .finish() + unsafe { + f.debug_struct("ExNode") + .field("prev", &self.prev) + .field("next", &self.next) + .field("extents", &extents) + .finish() + } } } diff --git a/src/header.rs b/src/header.rs index 30a53d13ca..ee11337483 100644 --- a/src/header.rs +++ b/src/header.rs @@ -57,14 +57,16 @@ impl Header { impl fmt::Debug for Header { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - f.debug_struct("Header") - .field("signature", &self.signature) - .field("version", &self.version) - .field("uuid", &self.uuid) - .field("size", &self.size) - .field("root", &self.root) - .field("free", &self.free) - .finish() + unsafe { + f.debug_struct("Header") + .field("signature", &self.signature) + .field("version", &self.version) + .field("uuid", &self.uuid) + .field("size", &self.size) + .field("root", &self.root) + .field("free", &self.free) + .finish() + } } } diff --git a/src/node.rs b/src/node.rs index 334344b0d0..22887fdda5 100644 --- a/src/node.rs +++ b/src/node.rs @@ -114,18 +114,20 @@ impl Node { impl fmt::Debug for Node { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let extents: Vec<&Extent> = self.extents.iter().filter(|extent| -> bool { extent.length > 0 }).collect(); - f.debug_struct("Node") - .field("mode", &self.mode) - .field("uid", &self.uid) - .field("gid", &self.gid) - .field("ctime", &self.ctime) - .field("ctime_nsec", &self.ctime_nsec) - .field("mtime", &self.mtime) - .field("mtime_nsec", &self.mtime_nsec) - .field("name", &self.name()) - .field("next", &self.next) - .field("extents", &extents) - .finish() + unsafe { + f.debug_struct("Node") + .field("mode", &self.mode) + .field("uid", &self.uid) + .field("gid", &self.gid) + .field("ctime", &self.ctime) + .field("ctime_nsec", &self.ctime_nsec) + .field("mtime", &self.mtime) + .field("mtime_nsec", &self.mtime_nsec) + .field("name", &self.name()) + .field("next", &self.next) + .field("extents", &extents) + .finish() + } } }