2
2
// Copyright (c) 2023-2024 Rust Nostr Developers
3
3
// Distributed under the MIT software license
4
4
5
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
5
6
use std:: net:: SocketAddr ;
6
7
use std:: ops:: Deref ;
7
8
8
9
use anyhow:: Result ;
9
10
use flutter_rust_bridge:: frb;
11
+ #[ cfg( target_arch = "wasm32" ) ]
12
+ use nostr_sdk:: prelude:: * ;
13
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
10
14
use nostr_sdk:: prelude:: { self , * } ;
11
15
12
16
use crate :: api:: relay:: options:: ConnectionMode ;
@@ -79,9 +83,18 @@ impl _ClientOptions {
79
83
80
84
/// Connection
81
85
pub fn connection ( & self , connection : _Connection ) -> Self {
82
- let mut builder = self . clone ( ) ;
83
- builder. inner = builder. inner . connection ( connection. inner ) ;
84
- builder
86
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
87
+ {
88
+ let mut builder = self . clone ( ) ;
89
+ builder. inner = builder. inner . connection ( connection. inner ) ;
90
+ builder
91
+ }
92
+
93
+ #[ cfg( target_arch = "wasm32" ) ]
94
+ {
95
+ let _ = connection;
96
+ self . clone ( )
97
+ }
85
98
}
86
99
87
100
// /// Set custom relay limits
@@ -109,7 +122,6 @@ impl _ClientOptions {
109
122
}
110
123
111
124
/// Connection target
112
- #[ cfg( not( target_arch = "wasm32" ) ) ]
113
125
pub enum ConnectionTarget {
114
126
/// Use proxy for all relays
115
127
All ,
@@ -129,60 +141,106 @@ impl From<ConnectionTarget> for prelude::ConnectionTarget {
129
141
130
142
/// Connection
131
143
#[ derive( Clone ) ]
132
- #[ cfg( not( target_arch = "wasm32" ) ) ]
133
144
#[ frb( name = "Connection" ) ]
134
145
pub struct _Connection {
146
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
135
147
inner : Connection ,
148
+ #[ cfg( target_arch = "wasm32" ) ]
149
+ inner : ( ) ,
136
150
}
137
151
138
- #[ cfg( not( target_arch = "wasm32" ) ) ]
139
152
#[ frb( sync) ]
140
153
impl _Connection {
141
154
pub fn new ( ) -> Self {
142
155
Self {
156
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
143
157
inner : Connection :: default ( ) ,
158
+ #[ cfg( target_arch = "wasm32" ) ]
159
+ inner : ( ) ,
144
160
}
145
161
}
146
162
147
163
/// Set connection mode (default: direct)
148
164
pub fn mode ( & self , mode : ConnectionMode ) -> Result < Self > {
149
- let mode: prelude:: ConnectionMode = mode. try_into ( ) ?;
150
- let mut builder = self . clone ( ) ;
151
- builder. inner = builder. inner . mode ( mode) ;
152
- Ok ( builder)
165
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
166
+ {
167
+ let mode: prelude:: ConnectionMode = mode. try_into ( ) ?;
168
+ let mut builder = self . clone ( ) ;
169
+ builder. inner = builder. inner . mode ( mode) ;
170
+ Ok ( builder)
171
+ }
172
+
173
+ #[ cfg( target_arch = "wasm32" ) ]
174
+ {
175
+ let _ = mode;
176
+ Ok ( self . clone ( ) )
177
+ }
153
178
}
154
179
155
180
/// Set connection target (default: all)
156
181
pub fn target ( & self , target : ConnectionTarget ) -> Self {
157
- let mut builder = self . clone ( ) ;
158
- builder. inner = builder. inner . target ( target. into ( ) ) ;
159
- builder
182
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
183
+ {
184
+ let mut builder = self . clone ( ) ;
185
+ builder. inner = builder. inner . target ( target. into ( ) ) ;
186
+ builder
187
+ }
188
+
189
+ #[ cfg( target_arch = "wasm32" ) ]
190
+ {
191
+ let _ = target;
192
+ self . clone ( )
193
+ }
160
194
}
161
195
162
196
/// Set proxy (ex. `127.0.0.1:9050`)
163
197
pub fn addr ( & self , addr : & str ) -> Result < Self > {
164
- let mut builder = self . clone ( ) ;
165
- let addr: SocketAddr = addr. parse ( ) ?;
166
- builder. inner = builder. inner . proxy ( addr) ;
167
- Ok ( builder)
198
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
199
+ {
200
+ let mut builder = self . clone ( ) ;
201
+ let addr: SocketAddr = addr. parse ( ) ?;
202
+ builder. inner = builder. inner . proxy ( addr) ;
203
+ Ok ( builder)
204
+ }
205
+
206
+ #[ cfg( target_arch = "wasm32" ) ]
207
+ {
208
+ let _ = addr;
209
+ Ok ( self . clone ( ) )
210
+ }
168
211
}
169
212
170
213
/// Use embedded tor client
171
214
///
172
215
/// This not work on `android` and/or `ios` targets.
173
216
/// Use [`Connection::embedded_tor_with_path`] instead.
174
217
pub fn embedded_tor ( & self ) -> Self {
175
- let mut builder = self . clone ( ) ;
176
- builder. inner = builder. inner . embedded_tor ( ) ;
177
- builder
218
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
219
+ {
220
+ let mut builder = self . clone ( ) ;
221
+ builder. inner = builder. inner . embedded_tor ( ) ;
222
+ builder
223
+ }
224
+
225
+ #[ cfg( target_arch = "wasm32" ) ]
226
+ self . clone ( )
178
227
}
179
228
180
229
/// Use embedded tor client
181
230
///
182
231
/// Specify a path where to store data
183
232
pub fn embedded_tor_with_path ( & self , data_path : String ) -> Self {
184
- let mut builder = self . clone ( ) ;
185
- builder. inner = builder. inner . embedded_tor_with_path ( data_path) ;
186
- builder
233
+ #[ cfg( not( target_arch = "wasm32" ) ) ]
234
+ {
235
+ let mut builder = self . clone ( ) ;
236
+ builder. inner = builder. inner . embedded_tor_with_path ( data_path) ;
237
+ builder
238
+ }
239
+
240
+ #[ cfg( target_arch = "wasm32" ) ]
241
+ {
242
+ let _ = data_path;
243
+ self . clone ( )
244
+ }
187
245
}
188
246
}
0 commit comments