diff options
Diffstat (limited to 'vendor/redox_syscall/src/io/io.rs')
-rw-r--r-- | vendor/redox_syscall/src/io/io.rs | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/vendor/redox_syscall/src/io/io.rs b/vendor/redox_syscall/src/io/io.rs deleted file mode 100644 index 2c4acd3..0000000 --- a/vendor/redox_syscall/src/io/io.rs +++ /dev/null @@ -1,71 +0,0 @@ -use core::cmp::PartialEq; -use core::ops::{BitAnd, BitOr, Not}; - -pub trait Io { - type Value: Copy + PartialEq + BitAnd<Output = Self::Value> + BitOr<Output = Self::Value> + Not<Output = Self::Value>; - - fn read(&self) -> Self::Value; - fn write(&mut self, value: Self::Value); - - #[inline(always)] - fn readf(&self, flags: Self::Value) -> bool { - (self.read() & flags) as Self::Value == flags - } - - #[inline(always)] - fn writef(&mut self, flags: Self::Value, value: bool) { - let tmp: Self::Value = match value { - true => self.read() | flags, - false => self.read() & !flags, - }; - self.write(tmp); - } -} - -pub struct ReadOnly<I> { - inner: I -} - -impl<I> ReadOnly<I> { - pub const fn new(inner: I) -> ReadOnly<I> { - ReadOnly { - inner: inner - } - } -} - -impl<I: Io> ReadOnly<I> { - #[inline(always)] - pub fn read(&self) -> I::Value { - self.inner.read() - } - - #[inline(always)] - pub fn readf(&self, flags: I::Value) -> bool { - self.inner.readf(flags) - } -} - -pub struct WriteOnly<I> { - inner: I -} - -impl<I> WriteOnly<I> { - pub const fn new(inner: I) -> WriteOnly<I> { - WriteOnly { - inner: inner - } - } -} - -impl<I: Io> WriteOnly<I> { - #[inline(always)] - pub fn write(&mut self, value: I::Value) { - self.inner.write(value) - } - - #[inline(always)] - pub fn writef(&mut self, flags: I::Value, value: bool) { - self.inner.writef(flags, value) - } -} |