浏览代码

fix: impl<T: Console> Console for &T

luojia65 2 年之前
父节点
当前提交
8c50722d0b
共有 2 个文件被更改,包括 19 次插入0 次删除
  1. 4 0
      CHANGELOG.md
  2. 15 0
      src/console.rs

+ 4 - 0
CHANGELOG.md

@@ -27,6 +27,10 @@ Bump RISC-V SBI specification version to 2.0-rc1.
 
 - doc: amend using SBI 2.0-rc1 specification
 
+### Fixed
+
+- `impl<T: Console> Console for &T`
+
 ## [0.3.1] - 2023-01-20
 
 ### Modified

+ 15 - 0
src/console.rs

@@ -85,3 +85,18 @@ pub trait Console {
     /// | `SbiRet::failed()`        | Failed to write the byte due to I/O errors.
     fn write_byte(&self, byte: u8) -> SbiRet;
 }
+
+impl<T: Console> Console for &T {
+    #[inline]
+    fn write(&self, bytes: Physical<&[u8]>) -> SbiRet {
+        T::write(self, bytes)
+    }
+    #[inline]
+    fn read(&self, bytes: Physical<&mut [u8]>) -> SbiRet {
+        T::read(self, bytes)
+    }
+    #[inline]
+    fn write_byte(&self, byte: u8) -> SbiRet {
+        T::write_byte(self, byte)
+    }
+}