9292}
9393
9494/// 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 > (
9696 kv_store : K , logger : L ,
9797) -> Result < NetworkGraph < L > , std:: io:: Error >
9898where
@@ -101,14 +101,15 @@ where
101101{
102102 let mut reader =
103103 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" )
106107 } ) ?;
107108 Ok ( graph)
108109}
109110
110111/// 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 > (
112113 kv_store : K , network_graph : G , logger : L ,
113114) -> Result < ProbabilisticScorer < G , L > , std:: io:: Error >
114115where
@@ -117,15 +118,16 @@ where
117118{
118119 let params = ProbabilisticScoringParameters :: default ( ) ;
119120 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) ;
122124 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Scorer" )
123125 } ) ?;
124126 Ok ( scorer)
125127}
126128
127129/// 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 > (
129131 kv_store : K , logger : L ,
130132) -> Result < EventQueue < K , L > , std:: io:: Error >
131133where
@@ -134,53 +136,63 @@ where
134136{
135137 let mut reader =
136138 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) ;
138141 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize EventQueue" )
139142 } ) ?;
140143 Ok ( event_queue)
141144}
142145
143146/// 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 > (
145148 kv_store : K , logger : L ,
146149) -> Result < PeerStore < K , L > , std:: io:: Error >
147150where
148151 K :: Target : KVStore ,
149152 L :: Target : Logger ,
150153{
151154 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) ;
153157 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize PeerStore" )
154158 } ) ?;
155159 Ok ( peer_info)
156160}
157161
158162/// 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 >
160166where
161167 K :: Target : KVStore ,
168+ L :: Target : Logger ,
162169{
163170 let mut res = Vec :: new ( ) ;
164171
165172 for stored_key in kv_store. list ( PAYMENT_INFO_PERSISTENCE_NAMESPACE ) ? {
166173 let payment = PaymentDetails :: read (
167174 & mut kv_store. read ( PAYMENT_INFO_PERSISTENCE_NAMESPACE , & stored_key) ?,
168175 )
169- . map_err ( |_| {
176+ . map_err ( |e| {
177+ log_error ! ( logger, "Failed to deserialize Payment: {}" , e) ;
170178 std:: io:: Error :: new ( std:: io:: ErrorKind :: InvalidData , "Failed to deserialize Payment" )
171179 } ) ?;
172180 res. push ( payment) ;
173181 }
174182 Ok ( res)
175183}
176184
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 >
178188where
179189 K :: Target : KVStore ,
190+ L :: Target : Logger ,
180191{
181192 let mut reader =
182193 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) ;
184196 std:: io:: Error :: new (
185197 std:: io:: ErrorKind :: InvalidData ,
186198 "Failed to deserialize latest RGS sync timestamp" ,
@@ -229,18 +241,24 @@ where
229241 } )
230242}
231243
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 ,
234246) -> Result < u64 , std:: io:: Error >
235247where
236248 K :: Target : KVStore ,
249+ L :: Target : Logger ,
237250{
238251 let mut reader = kv_store
239252 . 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+ ) ;
241259 std:: io:: Error :: new (
242260 std:: io:: ErrorKind :: InvalidData ,
243- "Failed to deserialize latest node announcment broadcast timestamp" ,
261+ "Failed to deserialize latest node announcement broadcast timestamp" ,
244262 )
245263 } )
246264}
0 commit comments