Skip to content

Commit 116bb7a

Browse files
committed
Merge #91: Avoid allocating a string in Display implementation
2684570 fix Display impl for ct desc (Riccardo Casatta) 589e67c fix Display impl for dynafed pegin (Riccardo Casatta) 9a93134 fix Display impl for legacy pegin (Riccardo Casatta) Pull request description: This applies the changes in b11c818 to other Display implementations. ACKs for top commit: apoelstra: ACK 2684570 successfully ran local tests Tree-SHA512: 516c0592ff827ae181dc735562be3723a6fac9ee323dd9907a35d8c387c0495ef03993ff601fdf3ad82c6073ec1c809a5719a1a2ba69e2923cb37ace24580b3c
2 parents f77fa62 + 2684570 commit 116bb7a

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

src/confidential/mod.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ use std::fmt;
2626
use bitcoin::bip32;
2727
use elements::secp256k1_zkp;
2828

29-
use crate::descriptor::checksum::{desc_checksum, verify_checksum};
29+
use crate::descriptor::checksum::{self, verify_checksum};
3030
use crate::descriptor::{
3131
ConversionError, DefiniteDescriptorKey, DescriptorSecretKey, DescriptorPublicKey,
3232
DescriptorXKey, Wildcard
@@ -189,9 +189,10 @@ impl<Pk: MiniscriptKey + ToPublicKey, T: Extension + ParseableExt> Descriptor<Pk
189189

190190
impl<Pk: MiniscriptKey, T: Extension> fmt::Display for Descriptor<Pk, T> {
191191
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
192-
let desc_str = format!("ct({},{:#})", self.key, self.descriptor);
193-
let checksum = desc_checksum(&desc_str).map_err(|_| fmt::Error)?;
194-
write!(f, "{}#{}", desc_str, checksum)
192+
use fmt::Write;
193+
let mut wrapped_f = checksum::Formatter::new(f);
194+
write!(wrapped_f, "ct({},{:#})", self.key, self.descriptor)?;
195+
wrapped_f.write_checksum_if_not_alt()
195196
}
196197
}
197198

src/descriptor/pegin/dynafed_pegin.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ use bitcoin::blockdata::script::{self, PushBytes};
2727
use bitcoin::{self, ScriptBuf as BtcScript};
2828
use elements::secp256k1_zkp;
2929

30-
use crate::descriptor::checksum::{desc_checksum, verify_checksum};
30+
use crate::descriptor::checksum::{self, verify_checksum};
3131
use crate::expression::{self, FromTree};
3232
use crate::extensions::{CovExtArgs, CovenantExt};
3333
use crate::policy::{semantic, Liftable};
@@ -69,9 +69,10 @@ impl<Pk: MiniscriptKey> fmt::Debug for Pegin<Pk> {
6969

7070
impl<Pk: MiniscriptKey> fmt::Display for Pegin<Pk> {
7171
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
72-
let desc = format!("pegin({},{})", self.fed_desc, self.elem_desc);
73-
let checksum = desc_checksum(&desc).map_err(|_| fmt::Error)?;
74-
write!(f, "{}#{}", &desc, &checksum)
72+
use fmt::Write;
73+
let mut wrapped_f = checksum::Formatter::new(f);
74+
write!(wrapped_f, "pegin({},{})", self.fed_desc, self.elem_desc)?;
75+
wrapped_f.write_checksum_if_not_alt()
7576
}
7677
}
7778

src/descriptor/pegin/legacy_pegin.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ use bitcoin::{self, hashes, ScriptBuf as BtcScript};
3434
use bitcoin_miniscript::TranslatePk as BtcTranslatePk;
3535
use elements::secp256k1_zkp;
3636

37-
use crate::descriptor::checksum::{desc_checksum, verify_checksum};
37+
use crate::descriptor::checksum::{self, verify_checksum};
3838
use crate::expression::{self, FromTree};
3939
use crate::extensions::{CovExtArgs, CovenantExt};
4040
use crate::policy::{semantic, Liftable};
@@ -326,9 +326,10 @@ impl<Pk: MiniscriptKey> fmt::Debug for LegacyPegin<Pk> {
326326

327327
impl<Pk: MiniscriptKey> fmt::Display for LegacyPegin<Pk> {
328328
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
329-
let desc = format!("legacy_pegin({},{})", self.ms, self.desc);
330-
let checksum = desc_checksum(&desc).map_err(|_| fmt::Error)?;
331-
write!(f, "{}#{}", &desc, &checksum)
329+
use fmt::Write;
330+
let mut wrapped_f = checksum::Formatter::new(f);
331+
write!(wrapped_f, "legacy_pegin({},{})", self.ms, self.desc)?;
332+
wrapped_f.write_checksum_if_not_alt()
332333
}
333334
}
334335

0 commit comments

Comments
 (0)