3 个不稳定版本
0.3.6 | 2024年6月21日 |
---|---|
0.3.5 | 2024年6月21日 |
0.1.0 | 2024年5月5日 |
20 在 #shorthand
每月40次下载
用于 2 crate
47KB
891 行
错误树
概述
error_tree
是一个Rust过程宏crate,旨在简化Rust应用程序中的错误处理。它允许您以干净和结构化的方式定义复杂的错误层次结构,使您的错误处理逻辑更加健壮且易于维护。
功能
- 轻松定义嵌套错误枚举。
- 自动生成错误转换的
From
实现。 - 简化Rust中的复杂错误处理。
安装
将error_tree
添加到您的Cargo.toml
文件中的[dependencies]
[dependencies]
error_tree = "0.1.0"
使用
以下是一个使用error_tree
的基本示例
use error_tree::error_tree;
error_tree!{
// Enumerate possible errors for capturing audio.
pub enum PassiveAudioCaptureError {
FormatError,
DeviceError(DeviceError),
IOError(IOError),
WavError(WavError),
HostError(HostError),
StreamOrChannelError(StreamOrChannelError),
}
pub enum MonitorAllInputsError {
DeviceError(DeviceError),
}
pub enum StreamOrChannelError {
StreamError(StreamError),
ChannelError(ChannelError),
}
pub enum IOError {
Basic(std::io::Error),
}
pub enum ChannelError {
ChannelRecvError(mpsc::RecvError),
}
pub enum StreamError {
StreamError(cpal::StreamError),
PauseStreamError(cpal::PauseStreamError),
BuildStreamError(cpal::BuildStreamError),
PlayStreamError(cpal::PlayStreamError),
SupportedStreamConfigsError(cpal::SupportedStreamConfigsError),
DefaultStreamConfigError(cpal::DefaultStreamConfigError),
}
pub enum DeviceError {
DeviceNotAvailable {
device_name: String,
},
Basic(cpal::DevicesError),
NameError(cpal::DeviceNameError),
}
pub enum WavError {
Hound(hound::Error),
}
pub enum HostError {
HostUnavailable(cpal::HostUnavailable),
}
}
这将自动生成您定义的层次结构内错误转换所需的必要From
实现。
贡献
欢迎为error_tree
做出贡献!请阅读我们的CONTRIBUTING.md以获取有关如何贡献的指南。
许可证
此crate根据MIT许可证分发。
依赖项
~4–6MB
~103K SLoC