v0.8.1: PdmError Structured Error Enum
What's Changed
PdmError Structured Error Enum
Replaced Result<T, String> with PdmResult<T> across the entire Rust backend, introducing a typed PdmError enum with 10 variants:
Cancelled— download cancelled by userHttp(u16)— HTTP status code errorClientBuild(String)— HTTP client construction failureProbe(String)— URL probe failedNotFound(u64)— download not foundDb(String)— database errorConfig(String)— configuration errorIo(String)— I/O errorNetwork(String)— network errorOther(String)— generic fallback
Automatic conversion via From impls for reqwest::Error, rusqlite::Error, io::Error, String, &str, PoisonError, and serde_json::Error. The Tauri command layer (cmd.rs) retains String for IPC compatibility.
Files Changed
types.rs— PdmError enum, Display, Error trait, From impls, PdmResult aliasdb.rs— all methods return PdmResultdownload_manager.rs— all methods return PdmResultengine/mod.rs— DownloadEngine trait returns PdmResultengine/concurrent.rs— download() returns PdmResult, typed errorsengine/single.rs— uses PdmError::Cancelled/Http/Io/Networkworker.rs— add_with_id returns PdmResultprobe.rs— returns PdmResultconfig.rs— save() returns PdmResultcmd.rs— DM calls use .map_err for Tauri IPC boundary
Full Changelog: v0.8.0...v0.8.1