Skip to content

Commit 0a11eb1

Browse files
committed
Expand persistence to all ChannelManagers, not just Arc-based ones
1 parent 8088e4b commit 0a11eb1

File tree

1 file changed

+13
-15
lines changed

1 file changed

+13
-15
lines changed

lightning-persister/src/lib.rs

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ use std::fs;
2929
use std::io::{Cursor, Error};
3030
use std::ops::Deref;
3131
use std::path::{Path, PathBuf};
32-
use std::sync::Arc;
3332

3433
/// FilesystemPersister persists channel data on disk, where each channel's
3534
/// data is stored in a file named after its funding outpoint.
@@ -53,12 +52,12 @@ impl<Signer: Sign> DiskWriteable for ChannelMonitor<Signer> {
5352
}
5453
}
5554

56-
impl<Signer: Sign, M, T, K, F, L> DiskWriteable for ChannelManager<Signer, Arc<M>, Arc<T>, Arc<K>, Arc<F>, Arc<L>>
57-
where M: chain::Watch<Signer>,
58-
T: BroadcasterInterface,
59-
K: KeysInterface<Signer=Signer>,
60-
F: FeeEstimator,
61-
L: Logger,
55+
impl<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref> DiskWriteable for ChannelManager<Signer, M, T, K, F, L>
56+
where M::Target: chain::Watch<Signer>,
57+
T::Target: BroadcasterInterface,
58+
K::Target: KeysInterface<Signer=Signer>,
59+
F::Target: FeeEstimator,
60+
L::Target: Logger
6261
{
6362
fn write_to_file(&self, writer: &mut fs::File) -> Result<(), std::io::Error> {
6463
self.write(writer)
@@ -87,16 +86,15 @@ impl FilesystemPersister {
8786

8887
/// Writes the provided `ChannelManager` to the path provided at `FilesystemPersister`
8988
/// initialization, within a file called "manager".
90-
pub fn persist_manager<Signer, M, T, K, F, L>(
89+
pub fn persist_manager<Signer: Sign, M: Deref, T: Deref, K: Deref, F: Deref, L: Deref>(
9190
data_dir: String,
92-
manager: &ChannelManager<Signer, Arc<M>, Arc<T>, Arc<K>, Arc<F>, Arc<L>>
91+
manager: &ChannelManager<Signer, M, T, K, F, L>
9392
) -> Result<(), std::io::Error>
94-
where Signer: Sign,
95-
M: chain::Watch<Signer>,
96-
T: BroadcasterInterface,
97-
K: KeysInterface<Signer=Signer>,
98-
F: FeeEstimator,
99-
L: Logger
93+
where M::Target: chain::Watch<Signer>,
94+
T::Target: BroadcasterInterface,
95+
K::Target: KeysInterface<Signer=Signer>,
96+
F::Target: FeeEstimator,
97+
L::Target: Logger
10098
{
10199
let path = PathBuf::from(data_dir);
102100
util::write_to_file(path, "manager".to_string(), manager)

0 commit comments

Comments
 (0)