From e3821ff0ff56894ca3542f82e38e1568d85842ea Mon Sep 17 00:00:00 2001 From: "Tony Arcieri (iqlusion)" Date: Mon, 5 Oct 2020 17:02:05 -0700 Subject: [PATCH] tendermint: impl fmt::UpperHex for abci::Transaction (#610) Found myself wanting it today. I imagine you could use similar impls throughout this crate, which allow you to do things like: println!("tx: {:X}", tx); --- tendermint/src/abci/transaction.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/tendermint/src/abci/transaction.rs b/tendermint/src/abci/transaction.rs index aaf90a566..db040594f 100644 --- a/tendermint/src/abci/transaction.rs +++ b/tendermint/src/abci/transaction.rs @@ -3,11 +3,9 @@ mod hash; pub use self::hash::Hash; -use std::slice; -use { - serde::{de::Error as _, Deserialize, Deserializer, Serialize, Serializer}, - subtle_encoding::base64, -}; +use serde::{de::Error as _, Deserialize, Deserializer, Serialize, Serializer}; +use std::{fmt, slice}; +use subtle_encoding::base64; /// Transactions are arbitrary byte arrays whose contents are validated by the /// underlying Tendermint application. @@ -40,6 +38,12 @@ impl AsRef<[u8]> for Transaction { } } +impl fmt::UpperHex for Transaction { + fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { + write!(f, "{:X?}", self.as_bytes()) + } +} + impl<'de> Deserialize<'de> for Transaction { fn deserialize>(deserializer: D) -> Result { let bytes = base64::decode(String::deserialize(deserializer)?.as_bytes())