Skip to content

Commit 13c733e

Browse files
committed
De-generify Writer
This allows all methods of Writeable to be non-generic, which allows traits that require Writeable (such as Sign) to have a vtable and be dyn objects
1 parent 6fcac8b commit 13c733e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+197
-291
lines changed

background-processor/src/lib.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ mod tests {
123123
use lightning::util::config::UserConfig;
124124
use lightning::util::events::{Event, EventsProvider, MessageSendEventsProvider, MessageSendEvent};
125125
use lightning::util::logger::Logger;
126-
use lightning::util::ser::Writeable;
126+
use lightning::util::ser::{Writeable, Writer};
127127
use lightning::util::test_utils;
128128
use lightning_persister::FilesystemPersister;
129129
use std::fs;
@@ -232,7 +232,7 @@ mod tests {
232232
loop {
233233
match std::fs::read($filepath) {
234234
Ok(bytes) => {
235-
if bytes == $expected_bytes {
235+
if bytes == $expected_bytes.0 {
236236
break
237237
} else {
238238
continue
@@ -249,7 +249,7 @@ mod tests {
249249

250250
// Check that the initial channel manager data is persisted as expected.
251251
let filepath = get_full_filepath("test_background_processor_persister_0".to_string(), "manager".to_string());
252-
let mut expected_bytes = Vec::new();
252+
let mut expected_bytes = Writer::new();
253253
check_persisted_data!(nodes[0].node, filepath.clone(), expected_bytes);
254254
loop {
255255
if !nodes[0].node.get_persistence_condvar_value() { break }
@@ -259,7 +259,7 @@ mod tests {
259259
nodes[0].node.force_close_channel(&OutPoint { txid: tx.txid(), index: 0 }.to_channel_id()).unwrap();
260260

261261
// Check that the force-close updates are persisted.
262-
let mut expected_bytes = Vec::new();
262+
let mut expected_bytes = Writer::new();
263263
check_persisted_data!(nodes[0].node, filepath.clone(), expected_bytes);
264264
loop {
265265
if !nodes[0].node.get_persistence_condvar_value() { break }

fuzz/src/chanmon_consistency.rs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -75,17 +75,6 @@ impl BroadcasterInterface for TestBroadcaster {
7575
fn broadcast_transaction(&self, _tx: &Transaction) { }
7676
}
7777

78-
pub struct VecWriter(pub Vec<u8>);
79-
impl Writer for VecWriter {
80-
fn write_all(&mut self, buf: &[u8]) -> Result<(), ::std::io::Error> {
81-
self.0.extend_from_slice(buf);
82-
Ok(())
83-
}
84-
fn size_hint(&mut self, size: usize) {
85-
self.0.reserve_exact(size);
86-
}
87-
}
88-
8978
struct TestChainMonitor {
9079
pub logger: Arc<dyn Logger>,
9180
pub chain_monitor: Arc<chainmonitor::ChainMonitor<EnforcingSigner, Arc<dyn chain::Filter>, Arc<TestBroadcaster>, Arc<FuzzEstimator>, Arc<dyn Logger>, Arc<TestPersister>>>,
@@ -111,7 +100,7 @@ impl TestChainMonitor {
111100
}
112101
impl chain::Watch<EnforcingSigner> for TestChainMonitor {
113102
fn watch_channel(&self, funding_txo: OutPoint, monitor: channelmonitor::ChannelMonitor<EnforcingSigner>) -> Result<(), channelmonitor::ChannelMonitorUpdateErr> {
114-
let mut ser = VecWriter(Vec::new());
103+
let mut ser = Writer::new();
115104
monitor.write(&mut ser).unwrap();
116105
if let Some(_) = self.latest_monitors.lock().unwrap().insert(funding_txo, (monitor.get_latest_update_id(), ser.0)) {
117106
panic!("Already had monitor pre-watch_channel");
@@ -130,7 +119,7 @@ impl chain::Watch<EnforcingSigner> for TestChainMonitor {
130119
let deserialized_monitor = <(BlockHash, channelmonitor::ChannelMonitor<EnforcingSigner>)>::
131120
read(&mut Cursor::new(&map_entry.get().1), &OnlyReadsKeysInterface {}).unwrap().1;
132121
deserialized_monitor.update_monitor(&update, &&TestBroadcaster{}, &&FuzzEstimator{}, &self.logger).unwrap();
133-
let mut ser = VecWriter(Vec::new());
122+
let mut ser = Writer::new();
134123
deserialized_monitor.write(&mut ser).unwrap();
135124
map_entry.insert((update.update_id, ser.0));
136125
self.should_update_manager.store(true, atomic::Ordering::Relaxed);
@@ -498,11 +487,11 @@ pub fn do_test<Out: test_logger::Output>(data: &[u8], out: Out) {
498487
let mut ba_events = Vec::new();
499488
let mut bc_events = Vec::new();
500489

501-
let mut node_a_ser = VecWriter(Vec::new());
490+
let mut node_a_ser = Writer::new();
502491
nodes[0].write(&mut node_a_ser).unwrap();
503-
let mut node_b_ser = VecWriter(Vec::new());
492+
let mut node_b_ser = Writer::new();
504493
nodes[1].write(&mut node_b_ser).unwrap();
505-
let mut node_c_ser = VecWriter(Vec::new());
494+
let mut node_c_ser = Writer::new();
506495
nodes[2].write(&mut node_c_ser).unwrap();
507496

508497
macro_rules! test_return {

fuzz/src/chanmon_deser.rs

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,10 @@ use utils::test_logger;
1212

1313
use std::io::Cursor;
1414

15-
struct VecWriter(Vec<u8>);
16-
impl Writer for VecWriter {
17-
fn write_all(&mut self, buf: &[u8]) -> Result<(), ::std::io::Error> {
18-
self.0.extend_from_slice(buf);
19-
Ok(())
20-
}
21-
fn size_hint(&mut self, size: usize) {
22-
self.0.reserve_exact(size);
23-
}
24-
}
25-
2615
#[inline]
2716
pub fn do_test<Out: test_logger::Output>(data: &[u8], _out: Out) {
2817
if let Ok((latest_block_hash, monitor)) = <(BlockHash, channelmonitor::ChannelMonitor<EnforcingSigner>)>::read(&mut Cursor::new(data), &OnlyReadsKeysInterface {}) {
29-
let mut w = VecWriter(Vec::new());
18+
let mut w = Writer::new();
3019
monitor.write(&mut w).unwrap();
3120
let deserialized_copy = <(BlockHash, channelmonitor::ChannelMonitor<EnforcingSigner>)>::read(&mut Cursor::new(&w.0), &OnlyReadsKeysInterface {}).unwrap();
3221
assert!(latest_block_hash == deserialized_copy.0);

fuzz/src/msg_targets/msg_accept_channel.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_announcement_signatures.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_channel_announcement.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_channel_reestablish.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_channel_update.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_closing_signed.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_commitment_signed.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_decoded_onion_error_packet.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_error_message.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_funding_created.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_funding_locked.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_funding_signed.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_gossip_timestamp_filter.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_init.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_node_announcement.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_onion_hop_data.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_open_channel.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_ping.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_pong.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_query_channel_range.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_query_short_channel_ids.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_reply_channel_range.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_reply_short_channel_ids_end.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_revoke_and_ack.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_shutdown.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_target_template.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_update_add_htlc.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_update_fail_htlc.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_update_fail_malformed_htlc.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_update_fee.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

fuzz/src/msg_targets/msg_update_fulfill_htlc.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212

1313
use lightning::ln::msgs;
1414

15-
use msg_targets::utils::VecWriter;
1615
use utils::test_logger;
1716

1817
#[inline]

0 commit comments

Comments
 (0)