Rustify Sys::open and some fs:: error handling.
This commit is contained in:
+12
-1
@@ -1,4 +1,4 @@
|
||||
use crate::platform::types::c_int;
|
||||
use crate::{header::errno::STR_ERROR, platform::types::c_int};
|
||||
|
||||
/// Positive error codes (EINVAL, not -EINVAL).
|
||||
#[derive(Debug, Eq, PartialEq)]
|
||||
@@ -27,6 +27,17 @@ impl From<Errno> for crate::io::Error {
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: core::error::Error
|
||||
|
||||
impl core::fmt::Display for Errno {
|
||||
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
||||
match usize::try_from(self.0).ok().and_then(|i| STR_ERROR.get(i)) {
|
||||
Some(desc) => write!(f, "{desc}"),
|
||||
None => write!(f, "unknown error ({})", self.0),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub trait ResultExt<T> {
|
||||
fn or_minus_one_errno(self) -> T;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user