pub mod args;
pub mod clock;
pub mod env;
pub mod file;
pub mod poll;
pub mod process;
pub mod random;
pub mod sched;
#[cfg(feature = "threads")]
pub mod thread;
pub mod wrap_unreachable;
#[macro_export]
macro_rules! __as_t {
(@as_t, self) => {
type T = $crate::__private::__self;
};
(@as_t, __self) => {
type T = $crate::__private::__self;
};
(@as_t, $wasm:ty) => {
type T = $wasm;
};
(@as_ident, self) => {
__self
};
(@as_ident, __self) => {
__self
};
(@as_ident, $wasm:ident) => {
$wasm
};
(@through, $($wasm:ident),* $(,)? => $callback:path, $($ex:tt)*) => {
$crate::__as_t!(@through_inner; $($wasm),*, ; => $callback, $($ex)*);
};
(@through_inner; , ; $(,)? $($tail:ident),* => $callback:path, $($ex:tt)*) => {
$callback!($($ex)*, $($tail),*);
};
(@through_inner; self, $($left:ident),* $(,)?; $(,)? $($tail:ident),* => $callback:path, $($ex:tt)*) => {
$crate::__as_t!(@through_inner; $($left),*, ; $($tail),*, __self => $callback, $($ex)*);
};
(@through_inner; $pop:ident, $($left:ident),* $(,)?; $(,)? $($tail:ident),* => $callback:path, $($ex:tt)*) => {
$crate::__as_t!(@through_inner; $($left),*, ; $($tail),*, $pop => $callback, $($ex)*);
};
}