@@ -84,6 +84,8 @@ use std::time::Instant;
84
84
85
85
#[ cfg( not( feature = "std" ) ) ]
86
86
use alloc:: boxed:: Box ;
87
+ #[ cfg( not( feature = "std" ) ) ]
88
+ use alloc:: string:: ToString ;
87
89
88
90
/// `BackgroundProcessor` takes care of tasks that (1) need to happen periodically to keep
89
91
/// Rust-Lightning running properly, and (2) either can or should be run in the background. Its
@@ -592,17 +594,17 @@ use futures_util::{dummy_waker, Joiner, OptionalSelector, Selector, SelectorOutp
592
594
/// # }
593
595
/// # struct StoreSync {}
594
596
/// # impl lightning::util::persist::KVStoreSync for StoreSync {
595
- /// # fn read(&self, primary_namespace: &str , secondary_namespace: &str , key: &str ) -> io::Result<Vec<u8>> { Ok(Vec::new()) }
596
- /// # fn write(&self, primary_namespace: &str , secondary_namespace: &str , key: &str , buf: &[u8] ) -> io::Result<()> { Ok(()) }
597
- /// # fn remove(&self, primary_namespace: &str , secondary_namespace: &str , key: &str , lazy: bool) -> io::Result<()> { Ok(()) }
598
- /// # fn list(&self, primary_namespace: &str , secondary_namespace: &str ) -> io::Result<Vec<String>> { Ok(Vec::new()) }
597
+ /// # fn read(&self, primary_namespace: String , secondary_namespace: String , key: String ) -> io::Result<Vec<u8>> { Ok(Vec::new()) }
598
+ /// # fn write(&self, primary_namespace: String , secondary_namespace: String , key: String , buf: Vec<u8> ) -> io::Result<()> { Ok(()) }
599
+ /// # fn remove(&self, primary_namespace: String , secondary_namespace: String , key: String , lazy: bool) -> io::Result<()> { Ok(()) }
600
+ /// # fn list(&self, primary_namespace: String , secondary_namespace: String ) -> io::Result<Vec<String>> { Ok(Vec::new()) }
599
601
/// # }
600
602
/// # struct Store {}
601
603
/// # impl lightning::util::persist::KVStore for Store {
602
- /// # fn read(&self, primary_namespace: &str , secondary_namespace: &str , key: &str ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, io::Error>> + 'static + Send>> { todo!() }
603
- /// # fn write(&self, primary_namespace: &str , secondary_namespace: &str , key: &str , buf: &[u8] ) -> Pin<Box<dyn Future<Output = Result<(), io::Error>> + 'static + Send>> { todo!() }
604
- /// # fn remove(&self, primary_namespace: &str , secondary_namespace: &str , key: &str , lazy: bool) -> Pin<Box<dyn Future<Output = Result<(), io::Error>> + 'static + Send>> { todo!() }
605
- /// # fn list(&self, primary_namespace: &str , secondary_namespace: &str ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, io::Error>> + 'static + Send>> { todo!() }
604
+ /// # fn read(&self, primary_namespace: String , secondary_namespace: String , key: String ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, io::Error>> + 'static + Send>> { todo!() }
605
+ /// # fn write(&self, primary_namespace: String , secondary_namespace: String , key: String , buf: Vec<u8> ) -> Pin<Box<dyn Future<Output = Result<(), io::Error>> + 'static + Send>> { todo!() }
606
+ /// # fn remove(&self, primary_namespace: String , secondary_namespace: String , key: String , lazy: bool) -> Pin<Box<dyn Future<Output = Result<(), io::Error>> + 'static + Send>> { todo!() }
607
+ /// # fn list(&self, primary_namespace: String , secondary_namespace: String ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, io::Error>> + 'static + Send>> { todo!() }
606
608
/// # }
607
609
/// # use core::time::Duration;
608
610
/// # struct DefaultTimeProvider;
@@ -793,10 +795,10 @@ where
793
795
log_trace ! ( logger, "Persisting scorer after update" ) ;
794
796
if let Err ( e) = kv_store
795
797
. write (
796
- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
797
- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
798
- SCORER_PERSISTENCE_KEY ,
799
- & scorer. encode ( ) ,
798
+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
799
+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
800
+ SCORER_PERSISTENCE_KEY . to_string ( ) ,
801
+ scorer. encode ( ) ,
800
802
)
801
803
. await
802
804
{
@@ -929,10 +931,10 @@ where
929
931
let fut = async {
930
932
kv_store
931
933
. write (
932
- CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE ,
933
- CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE ,
934
- CHANNEL_MANAGER_PERSISTENCE_KEY ,
935
- & channel_manager. get_cm ( ) . encode ( ) ,
934
+ CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
935
+ CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
936
+ CHANNEL_MANAGER_PERSISTENCE_KEY . to_string ( ) ,
937
+ channel_manager. get_cm ( ) . encode ( ) ,
936
938
)
937
939
. await
938
940
} ;
@@ -974,10 +976,10 @@ where
974
976
let fut = async {
975
977
if let Err ( e) = kv_store
976
978
. write (
977
- NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE ,
978
- NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE ,
979
- NETWORK_GRAPH_PERSISTENCE_KEY ,
980
- & network_graph. encode ( ) ,
979
+ NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
980
+ NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
981
+ NETWORK_GRAPH_PERSISTENCE_KEY . to_string ( ) ,
982
+ network_graph. encode ( ) ,
981
983
)
982
984
. await
983
985
{
@@ -1017,10 +1019,10 @@ where
1017
1019
let fut = async {
1018
1020
if let Err ( e) = kv_store
1019
1021
. write (
1020
- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
1021
- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
1022
- SCORER_PERSISTENCE_KEY ,
1023
- & scorer. encode ( ) ,
1022
+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1023
+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1024
+ SCORER_PERSISTENCE_KEY . to_string ( ) ,
1025
+ scorer. encode ( ) ,
1024
1026
)
1025
1027
. await
1026
1028
{
@@ -1125,29 +1127,29 @@ where
1125
1127
// ChannelMonitor update(s) persisted without a corresponding ChannelManager update.
1126
1128
kv_store
1127
1129
. write (
1128
- CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE ,
1129
- CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE ,
1130
- CHANNEL_MANAGER_PERSISTENCE_KEY ,
1131
- & channel_manager. get_cm ( ) . encode ( ) ,
1130
+ CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1131
+ CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1132
+ CHANNEL_MANAGER_PERSISTENCE_KEY . to_string ( ) ,
1133
+ channel_manager. get_cm ( ) . encode ( ) ,
1132
1134
)
1133
1135
. await ?;
1134
1136
if let Some ( ref scorer) = scorer {
1135
1137
kv_store
1136
1138
. write (
1137
- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
1138
- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
1139
- SCORER_PERSISTENCE_KEY ,
1140
- & scorer. encode ( ) ,
1139
+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1140
+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1141
+ SCORER_PERSISTENCE_KEY . to_string ( ) ,
1142
+ scorer. encode ( ) ,
1141
1143
)
1142
1144
. await ?;
1143
1145
}
1144
1146
if let Some ( network_graph) = gossip_sync. network_graph ( ) {
1145
1147
kv_store
1146
1148
. write (
1147
- NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE ,
1148
- NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE ,
1149
- NETWORK_GRAPH_PERSISTENCE_KEY ,
1150
- & network_graph. encode ( ) ,
1149
+ NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1150
+ NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1151
+ NETWORK_GRAPH_PERSISTENCE_KEY . to_string ( ) ,
1152
+ network_graph. encode ( ) ,
1151
1153
)
1152
1154
. await ?;
1153
1155
}
@@ -1349,10 +1351,10 @@ impl BackgroundProcessor {
1349
1351
if update_scorer ( scorer, & event, duration_since_epoch) {
1350
1352
log_trace ! ( logger, "Persisting scorer after update" ) ;
1351
1353
if let Err ( e) = kv_store. write (
1352
- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
1353
- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
1354
- SCORER_PERSISTENCE_KEY ,
1355
- & scorer. encode ( ) ,
1354
+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1355
+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1356
+ SCORER_PERSISTENCE_KEY . to_string ( ) ,
1357
+ scorer. encode ( ) ,
1356
1358
) {
1357
1359
log_error ! ( logger, "Error: Failed to persist scorer, check your disk and permissions {}" , e)
1358
1360
}
@@ -1449,10 +1451,10 @@ impl BackgroundProcessor {
1449
1451
if channel_manager. get_cm ( ) . get_and_clear_needs_persistence ( ) {
1450
1452
log_trace ! ( logger, "Persisting ChannelManager..." ) ;
1451
1453
( kv_store. write (
1452
- CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE ,
1453
- CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE ,
1454
- CHANNEL_MANAGER_PERSISTENCE_KEY ,
1455
- & channel_manager. get_cm ( ) . encode ( ) ,
1454
+ CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1455
+ CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1456
+ CHANNEL_MANAGER_PERSISTENCE_KEY . to_string ( ) ,
1457
+ channel_manager. get_cm ( ) . encode ( ) ,
1456
1458
) ) ?;
1457
1459
log_trace ! ( logger, "Done persisting ChannelManager." ) ;
1458
1460
}
@@ -1481,10 +1483,10 @@ impl BackgroundProcessor {
1481
1483
duration_since_epoch. as_secs ( ) ,
1482
1484
) ;
1483
1485
if let Err ( e) = kv_store. write (
1484
- NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE ,
1485
- NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE ,
1486
- NETWORK_GRAPH_PERSISTENCE_KEY ,
1487
- & network_graph. encode ( ) ,
1486
+ NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1487
+ NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1488
+ NETWORK_GRAPH_PERSISTENCE_KEY . to_string ( ) ,
1489
+ network_graph. encode ( ) ,
1488
1490
) {
1489
1491
log_error ! ( logger, "Error: Failed to persist network graph, check your disk and permissions {}" , e) ;
1490
1492
}
@@ -1510,10 +1512,10 @@ impl BackgroundProcessor {
1510
1512
log_trace ! ( logger, "Calling time_passed and persisting scorer" ) ;
1511
1513
scorer. write_lock ( ) . time_passed ( duration_since_epoch) ;
1512
1514
if let Err ( e) = kv_store. write (
1513
- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
1514
- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
1515
- SCORER_PERSISTENCE_KEY ,
1516
- & scorer. encode ( ) ,
1515
+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1516
+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1517
+ SCORER_PERSISTENCE_KEY . to_string ( ) ,
1518
+ scorer. encode ( ) ,
1517
1519
) {
1518
1520
log_error ! ( logger,
1519
1521
"Error: Failed to persist scorer, check your disk and permissions {}" ,
@@ -1553,25 +1555,25 @@ impl BackgroundProcessor {
1553
1555
// some races where users quit while channel updates were in-flight, with
1554
1556
// ChannelMonitor update(s) persisted without a corresponding ChannelManager update.
1555
1557
kv_store. write (
1556
- CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE ,
1557
- CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE ,
1558
- CHANNEL_MANAGER_PERSISTENCE_KEY ,
1559
- & channel_manager. get_cm ( ) . encode ( ) ,
1558
+ CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1559
+ CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1560
+ CHANNEL_MANAGER_PERSISTENCE_KEY . to_string ( ) ,
1561
+ channel_manager. get_cm ( ) . encode ( ) ,
1560
1562
) ?;
1561
1563
if let Some ( ref scorer) = scorer {
1562
1564
kv_store. write (
1563
- SCORER_PERSISTENCE_PRIMARY_NAMESPACE ,
1564
- SCORER_PERSISTENCE_SECONDARY_NAMESPACE ,
1565
- SCORER_PERSISTENCE_KEY ,
1566
- & scorer. encode ( ) ,
1565
+ SCORER_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1566
+ SCORER_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1567
+ SCORER_PERSISTENCE_KEY . to_string ( ) ,
1568
+ scorer. encode ( ) ,
1567
1569
) ?;
1568
1570
}
1569
1571
if let Some ( network_graph) = gossip_sync. network_graph ( ) {
1570
1572
kv_store. write (
1571
- NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE ,
1572
- NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE ,
1573
- NETWORK_GRAPH_PERSISTENCE_KEY ,
1574
- & network_graph. encode ( ) ,
1573
+ NETWORK_GRAPH_PERSISTENCE_PRIMARY_NAMESPACE . to_string ( ) ,
1574
+ NETWORK_GRAPH_PERSISTENCE_SECONDARY_NAMESPACE . to_string ( ) ,
1575
+ NETWORK_GRAPH_PERSISTENCE_KEY . to_string ( ) ,
1576
+ network_graph. encode ( ) ,
1575
1577
) ?;
1576
1578
}
1577
1579
Ok ( ( ) )
@@ -1910,13 +1912,14 @@ mod tests {
1910
1912
1911
1913
impl KVStoreSync for Persister {
1912
1914
fn read (
1913
- & self , primary_namespace : & str , secondary_namespace : & str , key : & str ,
1915
+ & self , primary_namespace : String , secondary_namespace : String , key : String ,
1914
1916
) -> lightning:: io:: Result < Vec < u8 > > {
1915
1917
self . kv_store . read ( primary_namespace, secondary_namespace, key)
1916
1918
}
1917
1919
1918
1920
fn write (
1919
- & self , primary_namespace : & str , secondary_namespace : & str , key : & str , buf : & [ u8 ] ,
1921
+ & self , primary_namespace : String , secondary_namespace : String , key : String ,
1922
+ buf : Vec < u8 > ,
1920
1923
) -> lightning:: io:: Result < ( ) > {
1921
1924
if primary_namespace == CHANNEL_MANAGER_PERSISTENCE_PRIMARY_NAMESPACE
1922
1925
&& secondary_namespace == CHANNEL_MANAGER_PERSISTENCE_SECONDARY_NAMESPACE
@@ -1958,13 +1961,13 @@ mod tests {
1958
1961
}
1959
1962
1960
1963
fn remove (
1961
- & self , primary_namespace : & str , secondary_namespace : & str , key : & str , lazy : bool ,
1964
+ & self , primary_namespace : String , secondary_namespace : String , key : String , lazy : bool ,
1962
1965
) -> lightning:: io:: Result < ( ) > {
1963
1966
self . kv_store . remove ( primary_namespace, secondary_namespace, key, lazy)
1964
1967
}
1965
1968
1966
1969
fn list (
1967
- & self , primary_namespace : & str , secondary_namespace : & str ,
1970
+ & self , primary_namespace : String , secondary_namespace : String ,
1968
1971
) -> lightning:: io:: Result < Vec < String > > {
1969
1972
self . kv_store . list ( primary_namespace, secondary_namespace)
1970
1973
}
0 commit comments