aboutsummaryrefslogtreecommitdiff
path: root/src/sys/shell/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sys/shell/mod.rs')
-rw-r--r--src/sys/shell/mod.rs76
1 files changed, 76 insertions, 0 deletions
diff --git a/src/sys/shell/mod.rs b/src/sys/shell/mod.rs
new file mode 100644
index 0000000..8303797
--- /dev/null
+++ b/src/sys/shell/mod.rs
@@ -0,0 +1,76 @@
+macro_rules! os_required {
+ () => {
+ panic!("mio must be compiled with `os-poll` to run.")
+ };
+}
+
+mod selector;
+pub(crate) use self::selector::{event, Event, Events, Selector};
+
+mod waker;
+pub(crate) use self::waker::Waker;
+
+cfg_tcp! {
+ pub(crate) mod tcp;
+}
+
+cfg_udp! {
+ pub(crate) mod udp;
+}
+
+#[cfg(unix)]
+cfg_uds! {
+ pub(crate) mod uds;
+}
+
+cfg_net! {
+ use std::io;
+ #[cfg(windows)]
+ use std::os::windows::io::RawSocket;
+
+ #[cfg(windows)]
+ use crate::{Registry, Token, Interest};
+
+ pub(crate) struct IoSourceState;
+
+ impl IoSourceState {
+ pub fn new() -> IoSourceState {
+ IoSourceState
+ }
+
+ pub fn do_io<T, F, R>(&self, f: F, io: &T) -> io::Result<R>
+ where
+ F: FnOnce(&T) -> io::Result<R>,
+ {
+ // We don't hold state, so we can just call the function and
+ // return.
+ f(io)
+ }
+ }
+
+ #[cfg(windows)]
+ impl IoSourceState {
+ pub fn register(
+ &mut self,
+ _: &Registry,
+ _: Token,
+ _: Interest,
+ _: RawSocket,
+ ) -> io::Result<()> {
+ os_required!()
+ }
+
+ pub fn reregister(
+ &mut self,
+ _: &Registry,
+ _: Token,
+ _: Interest,
+ ) -> io::Result<()> {
+ os_required!()
+ }
+
+ pub fn deregister(&mut self) -> io::Result<()> {
+ os_required!()
+ }
+ }
+}