@@ -64,7 +64,7 @@ impl<T: NamedResolver> NamedResolver for &T {
64
64
}
65
65
}
66
66
67
- impl NamedResolver for Box < dyn NamedResolver > {
67
+ impl NamedResolver for Box < dyn NamedResolver + Send + Sync > {
68
68
fn resolve_by_name ( & self , module : & str , field : & str ) -> Option < Export > {
69
69
( * * self ) . resolve_by_name ( module, field)
70
70
}
@@ -293,7 +293,7 @@ pub fn resolve_imports(
293
293
}
294
294
295
295
/// A [`Resolver`] that links two resolvers together in a chain.
296
- pub struct NamedResolverChain < A : NamedResolver , B : NamedResolver > {
296
+ pub struct NamedResolverChain < A : NamedResolver + Send + Sync , B : NamedResolver + Send + Sync > {
297
297
a : A ,
298
298
b : B ,
299
299
}
@@ -303,31 +303,31 @@ pub struct NamedResolverChain<A: NamedResolver, B: NamedResolver> {
303
303
/// ```
304
304
/// # use wasmer_engine::{ChainableNamedResolver, NamedResolver};
305
305
/// # fn chainable_test<A, B>(imports1: A, imports2: B)
306
- /// # where A: NamedResolver + Sized,
307
- /// # B: NamedResolver + Sized,
306
+ /// # where A: NamedResolver + Sized + Send + Sync ,
307
+ /// # B: NamedResolver + Sized + Send + Sync ,
308
308
/// # {
309
309
/// // override duplicates with imports from `imports2`
310
310
/// imports1.chain_front(imports2);
311
311
/// # }
312
312
/// ```
313
- pub trait ChainableNamedResolver : NamedResolver + Sized {
313
+ pub trait ChainableNamedResolver : NamedResolver + Sized + Send + Sync {
314
314
/// Chain a resolver in front of the current resolver.
315
315
///
316
316
/// This will cause the second resolver to override the first.
317
317
///
318
318
/// ```
319
319
/// # use wasmer_engine::{ChainableNamedResolver, NamedResolver};
320
320
/// # fn chainable_test<A, B>(imports1: A, imports2: B)
321
- /// # where A: NamedResolver + Sized,
322
- /// # B: NamedResolver + Sized,
321
+ /// # where A: NamedResolver + Sized + Send + Sync ,
322
+ /// # B: NamedResolver + Sized + Send + Sync ,
323
323
/// # {
324
324
/// // override duplicates with imports from `imports2`
325
325
/// imports1.chain_front(imports2);
326
326
/// # }
327
327
/// ```
328
328
fn chain_front < U > ( self , other : U ) -> NamedResolverChain < U , Self >
329
329
where
330
- U : NamedResolver ,
330
+ U : NamedResolver + Send + Sync ,
331
331
{
332
332
NamedResolverChain { a : other, b : self }
333
333
}
@@ -339,28 +339,28 @@ pub trait ChainableNamedResolver: NamedResolver + Sized {
339
339
/// ```
340
340
/// # use wasmer_engine::{ChainableNamedResolver, NamedResolver};
341
341
/// # fn chainable_test<A, B>(imports1: A, imports2: B)
342
- /// # where A: NamedResolver + Sized,
343
- /// # B: NamedResolver + Sized,
342
+ /// # where A: NamedResolver + Sized + Send + Sync ,
343
+ /// # B: NamedResolver + Sized + Send + Sync ,
344
344
/// # {
345
345
/// // override duplicates with imports from `imports1`
346
346
/// imports1.chain_back(imports2);
347
347
/// # }
348
348
/// ```
349
349
fn chain_back < U > ( self , other : U ) -> NamedResolverChain < Self , U >
350
350
where
351
- U : NamedResolver ,
351
+ U : NamedResolver + Send + Sync ,
352
352
{
353
353
NamedResolverChain { a : self , b : other }
354
354
}
355
355
}
356
356
357
357
// We give these chain methods to all types implementing NamedResolver
358
- impl < T : NamedResolver > ChainableNamedResolver for T { }
358
+ impl < T : NamedResolver + Send + Sync > ChainableNamedResolver for T { }
359
359
360
360
impl < A , B > NamedResolver for NamedResolverChain < A , B >
361
361
where
362
- A : NamedResolver ,
363
- B : NamedResolver ,
362
+ A : NamedResolver + Send + Sync ,
363
+ B : NamedResolver + Send + Sync ,
364
364
{
365
365
fn resolve_by_name ( & self , module : & str , field : & str ) -> Option < Export > {
366
366
self . a
@@ -371,8 +371,8 @@ where
371
371
372
372
impl < A , B > Clone for NamedResolverChain < A , B >
373
373
where
374
- A : NamedResolver + Clone ,
375
- B : NamedResolver + Clone ,
374
+ A : NamedResolver + Clone + Send + Sync ,
375
+ B : NamedResolver + Clone + Send + Sync ,
376
376
{
377
377
fn clone ( & self ) -> Self {
378
378
Self {
0 commit comments