///|
/// Errors reported by configuration, coding, repair, or archive validation.
pub(all) suberror ErasureError {
InvalidConfiguration(String)
InvalidShardCount(expected~ : Int, actual~ : Int)
InvalidShardLength(index~ : Int, expected~ : Int, actual~ : Int)
EmptyShard
NotEnoughShards(required~ : Int, available~ : Int)
SingularMatrix
InvalidIndex(Int)
DuplicateIndex(Int)
InconsistentShard(Int)
InvalidRange
InvalidEnvelope(String)
UnsupportedVersion(Int)
ChecksumMismatch(Int)
ResourceLimit(String)
InvalidManifest(String)
}
///|
pub fn ErasureError::code(self : ErasureError) -> String {
match self {
InvalidConfiguration(_) => "ERASURE_CONFIG"
InvalidShardCount(..) => "ERASURE_SHARD_COUNT"
InvalidShardLength(..) => "ERASURE_SHARD_LENGTH"
EmptyShard => "ERASURE_EMPTY_SHARD"
NotEnoughShards(..) => "ERASURE_NOT_ENOUGH_SHARDS"
SingularMatrix => "ERASURE_SINGULAR_MATRIX"
InvalidIndex(_) => "ERASURE_INDEX"
DuplicateIndex(_) => "ERASURE_DUPLICATE_INDEX"
InconsistentShard(_) => "ERASURE_INCONSISTENT_SHARD"
InvalidRange => "ERASURE_RANGE"
InvalidEnvelope(_) => "ERASURE_ENVELOPE"
UnsupportedVersion(_) => "ERASURE_VERSION"
ChecksumMismatch(_) => "ERASURE_CHECKSUM"
ResourceLimit(_) => "ERASURE_RESOURCE_LIMIT"
InvalidManifest(_) => "ERASURE_MANIFEST"
}
}