Skip to content

Commit c2ad0b1

Browse files
committed
Merge rust-bitcoin#5089: consensus_encoding: Add new() constructor to CompactSizeDecoder
6c79abb Add new() constructor to CompactSizeDecoder (jrakibi) Pull request description: For consistency with other decoders, we add a `new()` constructor to `CompactSizeDecoder` to match other decoders (ByteVecDecoder, VecDecoder, ArrayDecoder) Closes rust-bitcoin#5080 ACKs for top commit: nyonson: ACK 6c79abb apoelstra: ACK 6c79abb; successfully ran local tests tcharding: ACK 6c79abb Tree-SHA512: 435a57061d3a0836fcdfd16265e380a137479e2ea6883a7ea34b6e2dd4150e322a03b6b55a726708169ac1a0d78d812c873fa2dcb41bde889dacd03ed0a3d907
2 parents 10fe81f + 6c79abb commit c2ad0b1

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

consensus_encoding/src/decode/decoders.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ impl<T: Decodable> VecDecoder<T> {
126126
/// Constructs a new byte decoder.
127127
pub fn new() -> Self {
128128
Self {
129-
prefix_decoder: Some(CompactSizeDecoder::default()),
129+
prefix_decoder: Some(CompactSizeDecoder::new()),
130130
length: 0,
131131
buffer: Vec::new(),
132132
decoder: None,
@@ -602,11 +602,20 @@ where
602602
/// Decodes a compact size encoded integer.
603603
///
604604
/// For more information about decoder see the documentation of the [`Decoder`] trait.
605-
#[derive(Default, Debug, Clone)]
605+
#[derive(Debug, Clone)]
606606
pub struct CompactSizeDecoder {
607607
buf: internals::array_vec::ArrayVec<u8, 9>,
608608
}
609609

610+
impl CompactSizeDecoder {
611+
/// Constructs a new compact size decoder.
612+
pub fn new() -> Self { Self { buf: internals::array_vec::ArrayVec::new() } }
613+
}
614+
615+
impl Default for CompactSizeDecoder {
616+
fn default() -> Self { Self::new() }
617+
}
618+
610619
impl Decoder for CompactSizeDecoder {
611620
type Output = u64;
612621
type Error = CompactSizeDecoderError;
@@ -934,7 +943,7 @@ mod tests {
934943
let encoded = alloc::vec![0x00, 0xFF, 0xFF];
935944

936945
let mut slice = encoded.as_slice();
937-
let mut decoder = CompactSizeDecoder::default();
946+
let mut decoder = CompactSizeDecoder::new();
938947
assert!(!decoder.push_bytes(&mut slice).unwrap());
939948

940949
let got = decoder.end().unwrap();

0 commit comments

Comments
 (0)