| Crates.io | wp-error |
| lib.rs | wp-error |
| version | 0.7.6 |
| created_at | 2026-01-10 00:08:53.11026+00 |
| updated_at | 2026-01-10 00:29:59.327771+00 |
| description | Structured, domain-specific error types and robustness strategies extracted from WarpParse |
| homepage | https://github.com/wp-labs/wp-error |
| repository | https://github.com/wp-labs/wp-error |
| max_upload_size | |
| id | 2033207 |
| size | 109,610 |
wp_err 是从 warp-parse 数据处理平台拆分出来的综合性错误处理库,面向配置、解析、数据源和分发等领域,提供结构化错误类型、统一的系统错误码以及健壮性策略。该 crate 现在可以独立发布到 crates.io,用于任何需要领域化错误建模和策略化处理的 Rust 项目。
orion-error 系列库保持兼容,提供一致的 ErrorCode 行为。[dependencies]
wp-error = "0.7"
use wp_err::config_error::{ConfError, ConfResult};
fn load_conf() -> ConfResult<()> {
// ... 业务配置加载逻辑
Ok(())
}
config_error、parse_error、source_error、dist_error 与 run_error 覆盖配置、解析、数据源、分发及运行态。error_handling 模块定义 Debug/Normal/Strict 等健壮性模式与策略,可组合重试、容忍或抛出等行为。| 模块 | 描述 |
|---|---|
config_error |
配置相关错误类型与工具,ConfReason 实现 ErrorCode 并返回 SysErrorCode |
parse_error |
解析/OML 相关错误 |
source_error |
数据源错误类型 |
dist_error |
分发/接收端错误类型 |
run_error |
运行时错误类型和转换,保留 SourceFocus::Other/Disconnect 等细粒度原因 |
| 模块 | 描述 |
|---|---|
error_handling |
错误处理策略与健壮性模式 |
error_handling::strategy |
错误处理策略实现 |
error_handling::target |
预留扩展位 |
use wp_err::run_error::{RunErrorOwe, RunResult};
fn process_data() -> RunResult<()> {
let rs = do_something();
rs.to_sink_error()?; // 失败时转换为接收端错误
Ok(())
}
use wp_err::error_handling::{RobustnessMode, set_system_robustness_mode};
let prev = set_system_robustness_mode(RobustnessMode::Strict);
wp_err 统一定义跨模块/对外公开的系统错误码(SysErrorCode)。所有领域错误类型都可映射为稳定的 u16 码值,并在实现 orion_error::ErrorCode 时返回该码值。
use wp_err::SysErrorCode; reason.sys_code()ErrorCode::error_code(),可直接得到 sys_code。约定(示例,实际以 src/codes.rs 为准,更详细规划见 CODES.md):
ConfReason<*>)
OMLCodeReason / DataErrKind)
SourceReason)
SinkReason)
RunReason)
使用建议:
sys_code(),若需 HTTP 映射可在上层做二次映射(例如 404xx→404,422xx→422,502xx→502)。src/codes.rs 补充映射并同步更新 CODES.md。CODES.mdwp_err 在 Elastic License 2.0 下发布,详情参见项目根目录的 LICENSE 文件。