wasmtime_bench_api/unsafe_send_sync.rs
1#[derive(Clone, Copy)]
2pub struct UnsafeSendSync<T>(T);
3
4impl<T> UnsafeSendSync<T> {
5 /// Create a new `UnsafeSendSync` wrapper around the given value.
6 ///
7 /// The result is a type that is `Send` and `Sync` regardless of whether `T:
8 /// Send + Sync`, so this constructor is unsafe.
9 pub unsafe fn new(val: T) -> Self {
10 UnsafeSendSync(val)
11 }
12
13 pub fn get(&self) -> &T {
14 &self.0
15 }
16}
17
18unsafe impl<T> Send for UnsafeSendSync<T> {}
19unsafe impl<T> Sync for UnsafeSendSync<T> {}