2个不稳定版本
0.2.0 | 2024年3月8日 |
---|---|
0.1.1 | 2020年9月27日 |
0.1.0 |
|
#206 in 操作系统
3,137 每月下载量
在 4 个crate(2个直接)中使用
24KB
236 行
system_error
跨平台系统错误库。
请查看文档以获取详细信息!
lib.rs
:
跨平台系统错误库。
此库捕获了Unix平台上errno、Windows上的GetLastError()以及macOS和iOS上的kern_return_t的行为和消息。此外,这些Error
值可以被转换为std::io::Error
值。
示例
在Linux上
use system_error::Error;
use std::io::ErrorKind;
let os_error = Error::from_raw_os_error(1);
assert_eq!(os_error.kind(), ErrorKind::PermissionDenied);
assert_eq!(
format!("{}", os_error),
"Operation not permitted (os error 1)"
);
assert_eq!(
format!("{:?}", os_error),
"Error { kind: PermissionDenied, message: \"Operation not permitted (os error 1)\" }"
);
let kern_error = Error::from_raw_kernel_error(8);
assert_eq!(kern_error.kind(), ErrorKind::Other);
assert_eq!(
format!("{}", kern_error),
"Unknown error (kernel error 8)"
);
assert_eq!(
format!("{:?}", kern_error),
"Error { kind: Other, message: \"Unknown error (kernel error 8)\" }"
);
在macOS上
use system_error::Error;
use std::io::ErrorKind;
let os_error = Error::from_raw_os_error(1);
assert_eq!(os_error.kind(), ErrorKind::PermissionDenied);
assert_eq!(
format!("{}", os_error),
"Operation not permitted (os error 1)"
);
assert_eq!(
format!("{:?}", os_error),
"Error { kind: PermissionDenied, message: \"Operation not permitted (os error 1)\" }"
);
let kern_error = Error::from_raw_kernel_error(8);
assert_eq!(kern_error.kind(), ErrorKind::PermissionDenied);
assert_eq!(
format!("{}", kern_error),
"(os/kern) no access (kernel error 8)"
);
assert_eq!(
format!("{:?}", kern_error),
"Error { kind: PermissionDenied, message: \"(os/kern) no access (kernel error 8)\" }"
);
在Windows上
use system_error::Error;
use std::io::ErrorKind;
let os_error = Error::from_raw_os_error(5);
assert_eq!(os_error.kind(), ErrorKind::PermissionDenied);
assert_eq!(
format!("{}", os_error),
"Access is denied. (os error 5)"
);
assert_eq!(
format!("{:?}", os_error),
"Error { kind: PermissionDenied, message: \"Access is denied. (os error 5)\" }"
);
let kern_error = Error::from_raw_kernel_error(8);
assert_eq!(kern_error.kind(), ErrorKind::Other);
assert_eq!(
format!("{}", kern_error),
"Unknown error (kernel error 8)"
);
assert_eq!(
format!("{:?}", kern_error),
"Error { kind: Other, message: \"Unknown error (kernel error 8)\" }"
);