#![no_std]
pub mod os {
pub struct OsStr {
_tbd: (),
}
pub struct OsString {
_tbd: (),
}
}
pub mod signal {
}
pub mod env {
use crate::os::{OsStr, OsString};
pub struct VarsOs {
_tbd: ()
}
pub fn set_var<W: EnvAccess, K: AsRef<OsStr>, V: AsRef<OsStr>>(w: W, key: K, value: V) {
}
pub fn var_os<W: EnvAccess, K: AsRef<OsStr>>(w: W, key: K) -> Option<OsString> {
None
}
pub fn vars_os<W: EnvAccess>(w: W) -> VarsOs {
VarsOs { _tbd: () }
}
pub unsafe trait EnvAccess {}
}
pub mod thread {
pub fn spawn<W: ThreadAccess, F, T>(w: W, f: F) -> JoinHandle<T>
where
F: FnOnce(<W as ThreadAccess>::World) -> T + Send + 'static,
T: Send + 'static,
{
JoinHandle { _t: None }
}
pub unsafe trait ThreadAccess {
type World;
}
pub struct JoinHandle<T> {
_t: Option<T>,
}
}
pub struct MainWorld {
_tbd: (),
}
unsafe impl env::EnvAccess for MainWorld {}
unsafe impl thread::ThreadAccess for MainWorld {
type World = ThreadWorld;
}
pub struct ThreadWorld {
_tbd: (),
}
unsafe impl thread::ThreadAccess for ThreadWorld {
type World = ThreadWorld;
}
pub struct UnloadableMainWorld {
_tbd: (),
}
unsafe impl env::EnvAccess for UnloadableMainWorld {}
impl MainWorld {
unsafe fn new() -> MainWorld {
MainWorld { _tbd: () }
}
}
impl ThreadWorld {
unsafe fn new() -> ThreadWorld {
ThreadWorld { _tbd: () }
}
}
impl UnloadableMainWorld {
unsafe fn new() -> UnloadableMainWorld {
UnloadableMainWorld { _tbd: () }
}
}