not_send/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#![no_std]

use core::marker::PhantomData;

/// Types with PhantomNotSend won't automatically implement Send
#[derive(Debug)]
pub struct PhantomNotSend {
    _marker: PhantomData<*mut ()>,
}

#[allow(non_upper_case_globals)]
pub const PhantomNotSend: PhantomNotSend = PhantomNotSend {
    _marker: PhantomData,
};

unsafe impl Sync for PhantomNotSend {}