// sevenz_error.mbt
//
// 7z 归档是外部不可信输入:截断、非法字段、校验失败都必须落到结构化错误上,
// 绝不能 panic。所有错误都携带足够定位问题的字段。
///|
/// 解析 / 解包 7z 归档时可能出现的错误。
pub suberror SevenZError {
/// 数据长度不足(归档被截断)。
Truncated(offset~ : Int64, need~ : Int64, actual~ : Int64)
/// 文件开头不是 7z 签名 `37 7A BC AF 27 1C`。
BadSignature(found~ : String)
/// 主版本号不为 0(本实现只支持 0.x 归档)。
UnsupportedVersion(major~ : Int32, minor~ : Int32)
/// 校验和与数据不符。
BadCrc(what~ : String, expected~ : Int64, actual~ : Int64)
/// 头部字段自相矛盾或越界。
Malformed(reason~ : String)
/// 结构合法但当前实现尚未支持。
Unsupported(what~ : String)
/// 压缩码流损坏(range decoder 越界、距离越界、分块头非法等)。
LzmaCorrupt(reason~ : String)
}