use std::path::PathBuf;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum BootstrapError {
#[error(
"sha256 mismatch: expected={expected} actual={actual}; \
请清空 target_dir 重启 vigil-hub(本模块已自动删除产物文件)"
)]
Sha256Mismatch {
expected: String,
actual: String,
},
#[error(
"download failed: url={url} status={status}: {source}; \
请检查网络与镜像可达性"
)]
DownloadFailed {
url: String,
status: u16,
#[source]
source: reqwest::Error,
},
#[error(
"disk full or io error at {path}: {source}; \
请释放至少 500 MB 空间或通过 VIGIL_PRIVACY_FILTER_MODEL_DIR 切目录"
)]
DiskFull {
path: PathBuf,
#[source]
source: std::io::Error,
},
#[error(
"manifest parse failed: {source}; \
请检查 manifest schema 是否与 vigil-redaction 版本兼容"
)]
ManifestParse {
#[source]
source: serde_json::Error,
},
#[error(
"all mirrors unreachable: tried {tried_urls:?}; \
last_error={last_error}; 请检查代理/防火墙或离线分发模型包"
)]
NetworkUnreachable {
tried_urls: Vec<String>,
last_error: String,
},
}