]> git.bitcoin.ninja Git - rust-lightning/commitdiff
Write `ChannelId`s out as hex in `Debug` output
authorMatt Corallo <git@bluematt.me>
Mon, 9 Sep 2024 15:30:54 +0000 (15:30 +0000)
committerMatt Corallo <git@bluematt.me>
Mon, 9 Sep 2024 15:32:08 +0000 (15:32 +0000)
`ChannelId`s are almost always referenced as hex, so having debug
output print the raw bytes is somewhat annoying. Instead, we should
dump them as hex the same way we do for `Display`.

This uses the `hex_conservative` `impl_fmt_macros` which does all
the work for us, like we use for `lightning_types`.

lightning/src/ln/types.rs

index 9d56ad46d85b7e65f40ea9c14cd8d285cb16d539..dbe1e216b90cf6e03e8c66dba972853c7d555da6 100644 (file)
@@ -30,8 +30,8 @@ use bitcoin::hashes::{
        HashEngine as _,
        sha256::Hash as Sha256,
 };
+use bitcoin::hex::display::impl_fmt_traits;
 use core::borrow::Borrow;
-use core::fmt;
 use core::ops::Deref;
 
 /// A unique 32-byte identifier for a channel.
@@ -42,7 +42,7 @@ use core::ops::Deref;
 /// A _temporary_ ID is generated randomly.
 /// (Later revocation-point-based _v2_ is a possibility.)
 /// The variety (context) is not stored, it is relevant only at creation.
-#[derive(Clone, Copy, Debug, Eq, Hash, Ord, PartialEq, PartialOrd)]
+#[derive(Clone, Copy, Eq, Hash, Ord, PartialEq, PartialOrd)]
 pub struct ChannelId(pub [u8; 32]);
 
 impl ChannelId {
@@ -122,18 +122,18 @@ impl Readable for ChannelId {
        }
 }
 
-impl fmt::Display for ChannelId {
-       fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
-               crate::util::logger::DebugBytes(&self.0).fmt(f)
-       }
-}
-
 impl Borrow<[u8]> for ChannelId {
        fn borrow(&self) -> &[u8] {
                &self.0[..]
        }
 }
 
+impl_fmt_traits! {
+       impl fmt_traits for ChannelId {
+               const LENGTH: usize = 32;
+       }
+}
+
 pub use lightning_types::payment::{PaymentHash, PaymentPreimage, PaymentSecret};
 
 #[cfg(test)]