@@ -92,85 +92,101 @@ where
92
92
}
93
93
94
94
/// Read a previously persisted [`NetworkGraph`] from the store.
95
- pub ( crate ) fn read_network_graph < K : KVStore + Sync + Send , L : Deref > (
95
+ pub ( crate ) fn read_network_graph < K : KVStore + Sync + Send , L : Deref + Clone > (
96
96
kv_store : Arc < K > , logger : L ,
97
97
) -> Result < NetworkGraph < L > , std:: io:: Error >
98
98
where
99
99
L :: Target : Logger ,
100
100
{
101
101
let mut reader =
102
102
kv_store. read ( NETWORK_GRAPH_PERSISTENCE_NAMESPACE , NETWORK_GRAPH_PERSISTENCE_KEY ) ?;
103
- NetworkGraph :: read ( & mut reader, logger) . map_err ( |_| {
104
- std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize NetworkGraph" )
103
+ NetworkGraph :: read ( & mut reader, logger. clone ( ) ) . map_err ( |e| {
104
+ log_error ! ( logger, "Failed to deserialize network graph: {}" , e) ;
105
+ std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize network graph" )
105
106
} )
106
107
}
107
108
108
109
/// Read a previously persisted [`Scorer`] from the store.
109
- pub ( crate ) fn read_scorer < K : KVStore + Sync + Send , G : Deref < Target = NetworkGraph < L > > , L : Deref > (
110
+ pub ( crate ) fn read_scorer <
111
+ K : KVStore + Send + Sync ,
112
+ G : Deref < Target = NetworkGraph < L > > ,
113
+ L : Deref + Clone ,
114
+ > (
110
115
kv_store : Arc < K > , network_graph : G , logger : L ,
111
116
) -> Result < ProbabilisticScorer < G , L > , std:: io:: Error >
112
117
where
113
118
L :: Target : Logger ,
114
119
{
115
120
let params = ProbabilisticScoringParameters :: default ( ) ;
116
121
let mut reader = kv_store. read ( SCORER_PERSISTENCE_NAMESPACE , SCORER_PERSISTENCE_KEY ) ?;
117
- let args = ( params, network_graph, logger) ;
118
- ProbabilisticScorer :: read ( & mut reader, args) . map_err ( |_| {
122
+ let args = ( params, network_graph, logger. clone ( ) ) ;
123
+ ProbabilisticScorer :: read ( & mut reader, args) . map_err ( |e| {
124
+ log_error ! ( logger, "Failed to deserialize scorer: {}" , e) ;
119
125
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Scorer" )
120
126
} )
121
127
}
122
128
123
129
/// Read previously persisted events from the store.
124
- pub ( crate ) fn read_event_queue < K : KVStore + Sync + Send , L : Deref > (
130
+ pub ( crate ) fn read_event_queue < K : KVStore + Sync + Send , L : Deref + Clone > (
125
131
kv_store : Arc < K > , logger : L ,
126
132
) -> Result < EventQueue < K , L > , std:: io:: Error >
127
133
where
128
134
L :: Target : Logger ,
129
135
{
130
136
let mut reader =
131
137
kv_store. read ( EVENT_QUEUE_PERSISTENCE_NAMESPACE , EVENT_QUEUE_PERSISTENCE_KEY ) ?;
132
- EventQueue :: read ( & mut reader, ( kv_store, logger) ) . map_err ( |_| {
138
+ EventQueue :: read ( & mut reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
139
+ log_error ! ( logger, "Failed to deserialize event queue: {}" , e) ;
133
140
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize EventQueue" )
134
141
} )
135
142
}
136
143
137
144
/// Read previously persisted peer info from the store.
138
- pub ( crate ) fn read_peer_info < K : KVStore + Sync + Send , L : Deref > (
145
+ pub ( crate ) fn read_peer_info < K : KVStore + Sync + Send , L : Deref + Clone > (
139
146
kv_store : Arc < K > , logger : L ,
140
147
) -> Result < PeerStore < K , L > , std:: io:: Error >
141
148
where
142
149
L :: Target : Logger ,
143
150
{
144
151
let mut reader = kv_store. read ( PEER_INFO_PERSISTENCE_NAMESPACE , PEER_INFO_PERSISTENCE_KEY ) ?;
145
- PeerStore :: read ( & mut reader, ( kv_store, logger) ) . map_err ( |_| {
152
+ PeerStore :: read ( & mut reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
153
+ log_error ! ( logger, "Failed to deserialize peer store: {}" , e) ;
146
154
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize PeerStore" )
147
155
} )
148
156
}
149
157
150
158
/// Read previously persisted payments information from the store.
151
- pub ( crate ) fn read_payments < K : KVStore + Sync + Send > (
152
- kv_store : Arc < K > ,
153
- ) -> Result < Vec < PaymentDetails > , std:: io:: Error > {
159
+ pub ( crate ) fn read_payments < K : KVStore + Sync + Send , L : Deref > (
160
+ kv_store : Arc < K > , logger : L ,
161
+ ) -> Result < Vec < PaymentDetails > , std:: io:: Error >
162
+ where
163
+ L :: Target : Logger ,
164
+ {
154
165
let mut res = Vec :: new ( ) ;
155
166
156
167
for stored_key in kv_store. list ( PAYMENT_INFO_PERSISTENCE_NAMESPACE ) ? {
157
168
let payment = PaymentDetails :: read (
158
169
& mut kv_store. read ( PAYMENT_INFO_PERSISTENCE_NAMESPACE , & stored_key) ?,
159
170
)
160
- . map_err ( |_| {
171
+ . map_err ( |e| {
172
+ log_error ! ( logger, "Failed to deserialize Payment: {}" , e) ;
161
173
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Payment" )
162
174
} ) ?;
163
175
res. push ( payment) ;
164
176
}
165
177
Ok ( res)
166
178
}
167
179
168
- pub ( crate ) fn read_latest_rgs_sync_timestamp < K : KVStore + Sync + Send > (
169
- kv_store : Arc < K > ,
170
- ) -> Result < u32 , std:: io:: Error > {
180
+ pub ( crate ) fn read_latest_rgs_sync_timestamp < K : KVStore + Sync + Send , L : Deref > (
181
+ kv_store : Arc < K > , logger : L ,
182
+ ) -> Result < u32 , std:: io:: Error >
183
+ where
184
+ L :: Target : Logger ,
185
+ {
171
186
let mut reader =
172
187
kv_store. read ( LATEST_RGS_SYNC_TIMESTAMP_NAMESPACE , LATEST_RGS_SYNC_TIMESTAMP_KEY ) ?;
173
- u32:: read ( & mut reader) . map_err ( |_| {
188
+ u32:: read ( & mut reader) . map_err ( |e| {
189
+ log_error ! ( logger, "Failed to deserialize latest RGS sync timestamp: {}" , e) ;
174
190
std:: io:: Error :: new (
175
191
std:: io:: ErrorKind :: InvalidData ,
176
192
"Failed to deserialize latest RGS sync timestamp" ,
@@ -199,15 +215,23 @@ where
199
215
} )
200
216
}
201
217
202
- pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : KVStore + Sync + Send > (
203
- kv_store : Arc < K > ,
204
- ) -> Result < u64 , std:: io:: Error > {
218
+ pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : KVStore + Sync + Send , L : Deref > (
219
+ kv_store : Arc < K > , logger : L ,
220
+ ) -> Result < u64 , std:: io:: Error >
221
+ where
222
+ L :: Target : Logger ,
223
+ {
205
224
let mut reader = kv_store
206
225
. read ( LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ) ?;
207
- u64:: read ( & mut reader) . map_err ( |_| {
226
+ u64:: read ( & mut reader) . map_err ( |e| {
227
+ log_error ! (
228
+ logger,
229
+ "Failed to deserialize latest node announcement broadcast timestamp: {}" ,
230
+ e
231
+ ) ;
208
232
std:: io:: Error :: new (
209
233
std:: io:: ErrorKind :: InvalidData ,
210
- "Failed to deserialize latest node announcment broadcast timestamp" ,
234
+ "Failed to deserialize latest node announcement broadcast timestamp" ,
211
235
)
212
236
} )
213
237
}
0 commit comments