7
7
use std:: borrow:: Cow ;
8
8
use std:: cmp;
9
9
use std:: collections:: { HashMap , HashSet } ;
10
- use std:: sync:: Arc ;
11
10
use std:: time:: Duration ;
12
11
13
12
use async_utility:: time;
@@ -151,31 +150,8 @@ impl Ord for Relay {
151
150
}
152
151
153
152
impl Relay {
154
- /// Create new relay with **default** options and in-memory database
155
153
#[ inline]
156
- pub fn new ( url : RelayUrl ) -> Self {
157
- Self :: with_opts ( url, RelayOptions :: default ( ) )
158
- }
159
-
160
- /// Create new relay with default in-memory database and custom options
161
- #[ inline]
162
- pub fn with_opts ( url : RelayUrl , opts : RelayOptions ) -> Self {
163
- let database = Arc :: new ( MemoryDatabase :: default ( ) ) ;
164
- Self :: custom ( url, database, opts)
165
- }
166
-
167
- /// Create new relay with **custom** database and/or options
168
- pub fn custom < T > ( url : RelayUrl , database : T , opts : RelayOptions ) -> Self
169
- where
170
- T : IntoNostrDatabase ,
171
- {
172
- let mut state = SharedState :: default ( ) ;
173
- state. database = database. into_nostr_database ( ) ;
174
- Self :: internal_custom ( url, state, opts)
175
- }
176
-
177
- #[ inline]
178
- pub ( crate ) fn internal_custom ( url : RelayUrl , state : SharedState , opts : RelayOptions ) -> Self {
154
+ pub ( crate ) fn new ( url : RelayUrl , state : SharedState , opts : RelayOptions ) -> Self {
179
155
Self {
180
156
inner : AtomicDestructor :: new ( InnerRelay :: new ( url, state, opts) ) ,
181
157
}
@@ -742,6 +718,10 @@ mod tests {
742
718
743
719
use super :: { Error , * } ;
744
720
721
+ fn new_relay ( url : RelayUrl , opts : RelayOptions ) -> Relay {
722
+ Relay :: new ( url, SharedState :: default ( ) , opts)
723
+ }
724
+
745
725
/// Setup public (without NIP42 auth) relay with N events to test event fetching
746
726
///
747
727
/// **Adds ONLY text notes**
@@ -750,7 +730,7 @@ mod tests {
750
730
let mock = MockRelay :: run ( ) . await . unwrap ( ) ;
751
731
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
752
732
753
- let relay = Relay :: new ( url ) ;
733
+ let relay = new_relay ( url , RelayOptions :: default ( ) ) ;
754
734
relay. connect ( ) ;
755
735
756
736
// Signer
@@ -773,7 +753,7 @@ mod tests {
773
753
let mock = MockRelay :: run ( ) . await . unwrap ( ) ;
774
754
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
775
755
776
- let relay = Relay :: new ( url ) ;
756
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
777
757
778
758
relay. try_connect ( Duration :: from_secs ( 3 ) ) . await . unwrap ( ) ;
779
759
@@ -790,7 +770,7 @@ mod tests {
790
770
let mock = MockRelay :: run ( ) . await . unwrap ( ) ;
791
771
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
792
772
793
- let relay = Relay :: new ( url ) ;
773
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
794
774
795
775
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
796
776
@@ -813,7 +793,7 @@ mod tests {
813
793
let mock = MockRelay :: run ( ) . await . unwrap ( ) ;
814
794
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
815
795
816
- let relay = Relay :: with_opts ( url, RelayOptions :: default ( ) . reconnect ( false ) ) ;
796
+ let relay: Relay = new_relay ( url, RelayOptions :: default ( ) . reconnect ( false ) ) ;
817
797
818
798
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
819
799
@@ -836,7 +816,7 @@ mod tests {
836
816
let mock = MockRelay :: run ( ) . await . unwrap ( ) ;
837
817
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
838
818
839
- let relay = Relay :: new ( url ) ;
819
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
840
820
841
821
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
842
822
@@ -860,7 +840,7 @@ mod tests {
860
840
let opts = RelayOptions :: default ( )
861
841
. adjust_retry_interval ( false )
862
842
. retry_interval ( Duration :: from_secs ( 1 ) ) ;
863
- let relay = Relay :: with_opts ( url, opts) ;
843
+ let relay: Relay = new_relay ( url, opts) ;
864
844
865
845
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
866
846
@@ -889,8 +869,7 @@ mod tests {
889
869
let mock = MockRelay :: run ( ) . await . unwrap ( ) ;
890
870
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
891
871
892
- let opts = RelayOptions :: default ( ) ;
893
- let relay = Relay :: with_opts ( url, opts) ;
872
+ let relay: Relay = new_relay ( url, RelayOptions :: default ( ) ) ;
894
873
895
874
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
896
875
@@ -906,8 +885,7 @@ mod tests {
906
885
async fn test_connect_to_unreachable_relay ( ) {
907
886
let url = RelayUrl :: parse ( "wss://127.0.0.1:666" ) . unwrap ( ) ;
908
887
909
- let opts = RelayOptions :: default ( ) ;
910
- let relay = Relay :: with_opts ( url, opts) ;
888
+ let relay: Relay = new_relay ( url, RelayOptions :: default ( ) ) ;
911
889
912
890
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
913
891
@@ -925,8 +903,7 @@ mod tests {
925
903
let mock = MockRelay :: run ( ) . await . unwrap ( ) ;
926
904
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
927
905
928
- let opts = RelayOptions :: default ( ) ;
929
- let relay = Relay :: with_opts ( url, opts) ;
906
+ let relay: Relay = new_relay ( url, RelayOptions :: default ( ) ) ;
930
907
931
908
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
932
909
@@ -943,8 +920,7 @@ mod tests {
943
920
async fn test_try_connect_to_unreachable_relay ( ) {
944
921
let url = RelayUrl :: parse ( "wss://127.0.0.1:666" ) . unwrap ( ) ;
945
922
946
- let opts = RelayOptions :: default ( ) ;
947
- let relay = Relay :: with_opts ( url, opts) ;
923
+ let relay: Relay = new_relay ( url, RelayOptions :: default ( ) ) ;
948
924
949
925
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
950
926
@@ -966,7 +942,7 @@ mod tests {
966
942
let mock = MockRelay :: run_with_opts ( opts) . await . unwrap ( ) ;
967
943
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
968
944
969
- let relay = Relay :: new ( url ) ;
945
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
970
946
971
947
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
972
948
@@ -998,7 +974,7 @@ mod tests {
998
974
let mock = MockRelay :: run_with_opts ( opts) . await . unwrap ( ) ;
999
975
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
1000
976
1001
- let relay = Relay :: new ( url ) ;
977
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
1002
978
1003
979
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
1004
980
@@ -1026,7 +1002,7 @@ mod tests {
1026
1002
let mock = MockRelay :: run_with_opts ( opts) . await . unwrap ( ) ;
1027
1003
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
1028
1004
1029
- let relay = Relay :: new ( url ) ;
1005
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
1030
1006
1031
1007
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
1032
1008
@@ -1054,7 +1030,7 @@ mod tests {
1054
1030
let mock = MockRelay :: run_with_opts ( opts) . await . unwrap ( ) ;
1055
1031
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
1056
1032
1057
- let relay = Relay :: new ( url ) ;
1033
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
1058
1034
1059
1035
assert_eq ! ( relay. status( ) , RelayStatus :: Initialized ) ;
1060
1036
@@ -1079,7 +1055,7 @@ mod tests {
1079
1055
let mock = LocalRelay :: run ( builder) . await . unwrap ( ) ;
1080
1056
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
1081
1057
1082
- let relay = Relay :: new ( url ) ;
1058
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
1083
1059
1084
1060
relay. inner . state . automatic_authentication ( true ) ;
1085
1061
@@ -1122,7 +1098,7 @@ mod tests {
1122
1098
let mock = LocalRelay :: run ( builder) . await . unwrap ( ) ;
1123
1099
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
1124
1100
1125
- let relay = Relay :: new ( url ) ;
1101
+ let relay: Relay = new_relay ( url , RelayOptions :: default ( ) ) ;
1126
1102
1127
1103
relay. connect ( ) ;
1128
1104
@@ -1326,14 +1302,15 @@ mod tests {
1326
1302
let url = RelayUrl :: parse ( & mock. url ( ) ) . unwrap ( ) ;
1327
1303
1328
1304
// Sender
1329
- let relay1 = Relay :: new ( url. clone ( ) ) ;
1305
+ let relay1: Relay = new_relay ( url. clone ( ) , RelayOptions :: default ( ) ) ;
1306
+ relay1. connect ( ) ;
1330
1307
relay1
1331
1308
. try_connect ( Duration :: from_millis ( 500 ) )
1332
1309
. await
1333
1310
. unwrap ( ) ;
1334
1311
1335
1312
// Fetcher
1336
- let relay2 = Relay :: new ( url ) ;
1313
+ let relay2 = new_relay ( url , RelayOptions :: default ( ) ) ;
1337
1314
relay2
1338
1315
. try_connect ( Duration :: from_millis ( 500 ) )
1339
1316
. await
0 commit comments