@@ -92,85 +92,104 @@ 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 ( |_| {
103
+ NetworkGraph :: read ( & mut reader, logger. clone ( ) ) . map_err ( |e| {
104
+ log_error ! ( logger, "Failed to deserialize NetworkGraph: {}" , e) ;
104
105
std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize NetworkGraph" )
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 ( |_| {
161
- std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Payment" )
171
+ . map_err ( |e| {
172
+ log_error ! ( logger, "Failed to deserialize PaymentDetails: {}" , e) ;
173
+ std:: io:: Error :: new (
174
+ std:: io:: ErrorKind :: InvalidData ,
175
+ "Failed to deserialize PaymentDetails" ,
176
+ )
162
177
} ) ?;
163
178
res. push ( payment) ;
164
179
}
165
180
Ok ( res)
166
181
}
167
182
168
- pub ( crate ) fn read_latest_rgs_sync_timestamp < K : KVStore + Sync + Send > (
169
- kv_store : Arc < K > ,
170
- ) -> Result < u32 , std:: io:: Error > {
183
+ pub ( crate ) fn read_latest_rgs_sync_timestamp < K : KVStore + Sync + Send , L : Deref > (
184
+ kv_store : Arc < K > , logger : L ,
185
+ ) -> Result < u32 , std:: io:: Error >
186
+ where
187
+ L :: Target : Logger ,
188
+ {
171
189
let mut reader =
172
190
kv_store. read ( LATEST_RGS_SYNC_TIMESTAMP_NAMESPACE , LATEST_RGS_SYNC_TIMESTAMP_KEY ) ?;
173
- u32:: read ( & mut reader) . map_err ( |_| {
191
+ u32:: read ( & mut reader) . map_err ( |e| {
192
+ log_error ! ( logger, "Failed to deserialize latest RGS sync timestamp: {}" , e) ;
174
193
std:: io:: Error :: new (
175
194
std:: io:: ErrorKind :: InvalidData ,
176
195
"Failed to deserialize latest RGS sync timestamp" ,
@@ -199,15 +218,23 @@ where
199
218
} )
200
219
}
201
220
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 > {
221
+ pub ( crate ) fn read_latest_node_ann_bcast_timestamp < K : KVStore + Sync + Send , L : Deref > (
222
+ kv_store : Arc < K > , logger : L ,
223
+ ) -> Result < u64 , std:: io:: Error >
224
+ where
225
+ L :: Target : Logger ,
226
+ {
205
227
let mut reader = kv_store
206
228
. read ( LATEST_NODE_ANN_BCAST_TIMESTAMP_NAMESPACE , LATEST_NODE_ANN_BCAST_TIMESTAMP_KEY ) ?;
207
- u64:: read ( & mut reader) . map_err ( |_| {
229
+ u64:: read ( & mut reader) . map_err ( |e| {
230
+ log_error ! (
231
+ logger,
232
+ "Failed to deserialize latest node announcement broadcast timestamp: {}" ,
233
+ e
234
+ ) ;
208
235
std:: io:: Error :: new (
209
236
std:: io:: ErrorKind :: InvalidData ,
210
- "Failed to deserialize latest node announcment broadcast timestamp" ,
237
+ "Failed to deserialize latest node announcement broadcast timestamp" ,
211
238
)
212
239
} )
213
240
}
0 commit comments