92
92
}
93
93
94
94
/// Read a previously persisted [`NetworkGraph`] from the store.
95
- pub ( crate ) fn read_network_graph < K : Deref , L : Deref > (
95
+ pub ( crate ) fn read_network_graph < K : Deref , L : Deref + Clone > (
96
96
kv_store : K , logger : L ,
97
97
) -> Result < NetworkGraph < L > , std:: io:: Error >
98
98
where
@@ -101,14 +101,15 @@ where
101
101
{
102
102
let mut reader =
103
103
kv_store. read ( NETWORK_GRAPH_PERSISTENCE_NAMESPACE , NETWORK_GRAPH_PERSISTENCE_KEY ) ?;
104
- let graph = NetworkGraph :: read ( & mut reader, logger) . map_err ( |_| {
105
- std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize NetworkGraph" )
104
+ let graph = NetworkGraph :: read ( & mut reader, logger. clone ( ) ) . map_err ( |e| {
105
+ log_error ! ( logger, "Failed to deserialize network graph: {}" , e) ;
106
+ std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize network graph" )
106
107
} ) ?;
107
108
Ok ( graph)
108
109
}
109
110
110
111
/// Read a previously persisted [`Scorer`] from the store.
111
- pub ( crate ) fn read_scorer < K : Deref , G : Deref < Target = NetworkGraph < L > > , L : Deref > (
112
+ pub ( crate ) fn read_scorer < K : Deref , G : Deref < Target = NetworkGraph < L > > , L : Deref + Clone > (
112
113
kv_store : K , network_graph : G , logger : L ,
113
114
) -> Result < ProbabilisticScorer < G , L > , std:: io:: Error >
114
115
where
@@ -117,15 +118,16 @@ where
117
118
{
118
119
let params = ProbabilisticScoringParameters :: default ( ) ;
119
120
let mut reader = kv_store. read ( SCORER_PERSISTENCE_NAMESPACE , SCORER_PERSISTENCE_KEY ) ?;
120
- let args = ( params, network_graph, logger) ;
121
- let scorer = ProbabilisticScorer :: read ( & mut reader, args) . map_err ( |_| {
121
+ let args = ( params, network_graph, logger. clone ( ) ) ;
122
+ let scorer = ProbabilisticScorer :: read ( & mut reader, args) . map_err ( |e| {
123
+ log_error ! ( logger, "Failed to deserialize scorer: {}" , e) ;
122
124
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Scorer" )
123
125
} ) ?;
124
126
Ok ( scorer)
125
127
}
126
128
127
129
/// Read previously persisted events from the store.
128
- pub ( crate ) fn read_event_queue < K : Deref , L : Deref > (
130
+ pub ( crate ) fn read_event_queue < K : Deref , L : Deref + Clone > (
129
131
kv_store : K , logger : L ,
130
132
) -> Result < EventQueue < K , L > , std:: io:: Error >
131
133
where
@@ -134,53 +136,63 @@ where
134
136
{
135
137
let mut reader =
136
138
kv_store. read ( EVENT_QUEUE_PERSISTENCE_NAMESPACE , EVENT_QUEUE_PERSISTENCE_KEY ) ?;
137
- let event_queue = EventQueue :: read ( & mut reader, ( kv_store, logger) ) . map_err ( |_| {
139
+ let event_queue = EventQueue :: read ( & mut reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
140
+ log_error ! ( logger, "Failed to deserialize event queue: {}" , e) ;
138
141
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize EventQueue" )
139
142
} ) ?;
140
143
Ok ( event_queue)
141
144
}
142
145
143
146
/// Read previously persisted peer info from the store.
144
- pub ( crate ) fn read_peer_info < K : Deref , L : Deref > (
147
+ pub ( crate ) fn read_peer_info < K : Deref , L : Deref + Clone > (
145
148
kv_store : K , logger : L ,
146
149
) -> Result < PeerStore < K , L > , std:: io:: Error >
147
150
where
148
151
K :: Target : KVStore ,
149
152
L :: Target : Logger ,
150
153
{
151
154
let mut reader = kv_store. read ( PEER_INFO_PERSISTENCE_NAMESPACE , PEER_INFO_PERSISTENCE_KEY ) ?;
152
- let peer_info = PeerStore :: read ( & mut reader, ( kv_store, logger) ) . map_err ( |_| {
155
+ let peer_info = PeerStore :: read ( & mut reader, ( kv_store, logger. clone ( ) ) ) . map_err ( |e| {
156
+ log_error ! ( logger, "Failed to deserialize peer store: {}" , e) ;
153
157
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize PeerStore" )
154
158
} ) ?;
155
159
Ok ( peer_info)
156
160
}
157
161
158
162
/// Read previously persisted payments information from the store.
159
- pub ( crate ) fn read_payments < K : Deref > ( kv_store : K ) -> Result < Vec < PaymentDetails > , std:: io:: Error >
163
+ pub ( crate ) fn read_payments < K : Deref , L : Deref > (
164
+ kv_store : K , logger : L ,
165
+ ) -> Result < Vec < PaymentDetails > , std:: io:: Error >
160
166
where
161
167
K :: Target : KVStore ,
168
+ L :: Target : Logger ,
162
169
{
163
170
let mut res = Vec :: new ( ) ;
164
171
165
172
for stored_key in kv_store. list ( PAYMENT_INFO_PERSISTENCE_NAMESPACE ) ? {
166
173
let payment = PaymentDetails :: read (
167
174
& mut kv_store. read ( PAYMENT_INFO_PERSISTENCE_NAMESPACE , & stored_key) ?,
168
175
)
169
- . map_err ( |_| {
176
+ . map_err ( |e| {
177
+ log_error ! ( logger, "Failed to deserialize Payment: {}" , e) ;
170
178
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Payment" )
171
179
} ) ?;
172
180
res. push ( payment) ;
173
181
}
174
182
Ok ( res)
175
183
}
176
184
177
- pub ( crate ) fn read_latest_rgs_sync_timestamp < K : Deref > ( kv_store : K ) -> Result < u32 , std:: io:: Error >
185
+ pub ( crate ) fn read_latest_rgs_sync_timestamp < K : Deref , L : Deref > (
186
+ kv_store : K , logger : L ,
187
+ ) -> Result < u32 , std:: io:: Error >
178
188
where
179
189
K :: Target : KVStore ,
190
+ L :: Target : Logger ,
180
191
{
181
192
let mut reader =
182
193
kv_store. read ( LATEST_RGS_SYNC_TIMESTAMP_NAMESPACE , LATEST_RGS_SYNC_TIMESTAMP_KEY ) ?;
183
- u32:: read ( & mut reader) . map_err ( |_| {
194
+ u32:: read ( & mut reader) . map_err ( |e| {
195
+ log_error ! ( logger, "Failed to deserialize latest RGS sync timestamp: {}" , e) ;
184
196
std:: io:: Error :: new (
185
197
std:: io:: ErrorKind :: InvalidData ,
186
198
"Failed to deserialize latest RGS sync timestamp" ,
@@ -229,18 +241,24 @@ where
229
241
} )
230
242
}
231
243
232
- pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : Deref > (
233
- kv_store : K ,
244
+ pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : Deref , L : Deref > (
245
+ kv_store : K , logger : L ,
234
246
) -> Result < u64 , std:: io:: Error >
235
247
where
236
248
K :: Target : KVStore ,
249
+ L :: Target : Logger ,
237
250
{
238
251
let mut reader = kv_store
239
252
. read ( LATEST_NODE_ANN_BCAST_TIMSTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMSTAMP_KEY ) ?;
240
- u64:: read ( & mut reader) . map_err ( |_| {
253
+ u64:: read ( & mut reader) . map_err ( |e| {
254
+ log_error ! (
255
+ logger,
256
+ "Failed to deserialize latest node announcement broadcast timestamp: {}" ,
257
+ e
258
+ ) ;
241
259
std:: io:: Error :: new (
242
260
std:: io:: ErrorKind :: InvalidData ,
243
- "Failed to deserialize latest node announcment broadcast timestamp" ,
261
+ "Failed to deserialize latest node announcement broadcast timestamp" ,
244
262
)
245
263
} )
246
264
}
0 commit comments