diff --git a/os/src/fs/mod.rs b/os/src/fs/mod.rs index 853ef41a..60c89bd3 100644 --- a/os/src/fs/mod.rs +++ b/os/src/fs/mod.rs @@ -2,19 +2,9 @@ mod pipe; mod stdio; use crate::mm::UserBuffer; -use core::any::Any; - -pub trait File : Any + Send + Sync { +pub trait File : Send + Sync { fn read(&self, buf: UserBuffer) -> usize; fn write(&self, buf: UserBuffer) -> usize; - fn as_any_ref(&self) -> &dyn Any; -} - -impl dyn File { - #[allow(unused)] - pub fn downcast_ref(&self) -> Option<&T> { - self.as_any_ref().downcast_ref::() - } } pub use pipe::{Pipe, make_pipe}; diff --git a/os/src/fs/pipe.rs b/os/src/fs/pipe.rs index ccbc53e0..6f5c1f33 100644 --- a/os/src/fs/pipe.rs +++ b/os/src/fs/pipe.rs @@ -5,7 +5,6 @@ use crate::mm::{ UserBuffer, }; use crate::task::suspend_current_and_run_next; -use core::any::Any; pub struct Pipe { readable: bool, @@ -163,5 +162,4 @@ impl File for Pipe { } } } - fn as_any_ref(&self) -> &dyn Any { self } } \ No newline at end of file diff --git a/os/src/fs/stdio.rs b/os/src/fs/stdio.rs index 841849ef..b87d185b 100644 --- a/os/src/fs/stdio.rs +++ b/os/src/fs/stdio.rs @@ -2,7 +2,6 @@ use super::File; use crate::mm::{UserBuffer}; use crate::sbi::console_getchar; use crate::task::suspend_current_and_run_next; -use core::any::Any; pub struct Stdin; @@ -29,7 +28,6 @@ impl File for Stdin { fn write(&self, _user_buf: UserBuffer) -> usize { panic!("Cannot write to stdin!"); } - fn as_any_ref(&self) -> &dyn Any { self } } impl File for Stdout { @@ -42,5 +40,4 @@ impl File for Stdout { } user_buf.len() } - fn as_any_ref(&self) -> &dyn Any { self } } \ No newline at end of file