// 移植自 github.com/milvus-io/milvus client/internal/merr (Apache-2.0)
// Copyright (c) LF AI & Data Foundation
///|
/// legacy `ErrorCode` → modern 数值码,逐条照搬上游 `modernCodeFromLegacy`。
///
/// 未命中的 legacy 码落到 `unexpected_code`。
pub fn modern_code_from_legacy(legacy : @common.ErrorCode) -> Int {
match legacy {
@common.ErrorCode::NotReadyServe => 1
@common.ErrorCode::CollectionNotExists => 100
@common.ErrorCode::IllegalArgument => 1100
@common.ErrorCode::NodeIDNotMatch => 904
@common.ErrorCode::InsufficientMemoryToLoad
| @common.ErrorCode::MemoryQuotaExhausted => 3
@common.ErrorCode::DiskQuotaExhausted => 7
@common.ErrorCode::TimeTickLongDelay => 11
@common.ErrorCode::RateLimit => 8
@common.ErrorCode::ForceDeny => 9
@common.ErrorCode::IndexNotExist => 700
@common.ErrorCode::SegmentNotFound => 600
@common.ErrorCode::MetaFailed => 500
_ => unexpected_code
}
}
///|
/// modern 数值码 → legacy `ErrorCode`,逐条照搬上游 `legacyCodeFromModern`。
///
/// 未命中的数值码落到 `UnexpectedError`。
pub fn legacy_code_from_modern(code : Int) -> @common.ErrorCode {
match code {
1 | 110 => @common.ErrorCode::NotReadyServe
100 => @common.ErrorCode::CollectionNotExists
1100 | 1101 | 1102 => @common.ErrorCode::IllegalArgument
904 => @common.ErrorCode::NodeIDNotMatch
200 | 400 | 501 => @common.ErrorCode::MetaFailed
401 | 503 | 506 | 905 => @common.ErrorCode::NoReplicaAvailable
3 => @common.ErrorCode::InsufficientMemoryToLoad
7 => @common.ErrorCode::DiskQuotaExhausted
11 | 505 => @common.ErrorCode::TimeTickLongDelay
8 => @common.ErrorCode::RateLimit
9 => @common.ErrorCode::ForceDeny
700 => @common.ErrorCode::IndexNotExist
600 => @common.ErrorCode::SegmentNotFound
109 => @common.ErrorCode::SchemaMismatch
_ => @common.ErrorCode::UnexpectedError
}
}