37 lines
1.4 KiB
Rust
37 lines
1.4 KiB
Rust
//! 资产领域错误。
|
|
//!
|
|
//! 字段错误和业务错误在这里收口,HTTP 状态码与 SpacetimeDB 字符串错误由 adapter 映射。
|
|
|
|
use std::{error::Error, fmt};
|
|
|
|
#[derive(Clone, Debug, PartialEq, Eq)]
|
|
pub enum AssetObjectFieldError {
|
|
MissingBucket,
|
|
MissingObjectKey,
|
|
MissingAssetKind,
|
|
MissingAssetObjectId,
|
|
MissingBindingId,
|
|
MissingEntityKind,
|
|
MissingEntityId,
|
|
MissingSlot,
|
|
InvalidVersion,
|
|
}
|
|
|
|
impl fmt::Display for AssetObjectFieldError {
|
|
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
match self {
|
|
Self::MissingBucket => f.write_str("asset_object.bucket 不能为空"),
|
|
Self::MissingObjectKey => f.write_str("asset_object.object_key 不能为空"),
|
|
Self::MissingAssetKind => f.write_str("asset_object.asset_kind 不能为空"),
|
|
Self::MissingAssetObjectId => f.write_str("asset_object.asset_object_id 不能为空"),
|
|
Self::MissingBindingId => f.write_str("asset_entity_binding.binding_id 不能为空"),
|
|
Self::MissingEntityKind => f.write_str("asset_entity_binding.entity_kind 不能为空"),
|
|
Self::MissingEntityId => f.write_str("asset_entity_binding.entity_id 不能为空"),
|
|
Self::MissingSlot => f.write_str("asset_entity_binding.slot 不能为空"),
|
|
Self::InvalidVersion => f.write_str("asset_object.version 必须大于 0"),
|
|
}
|
|
}
|
|
}
|
|
|
|
impl Error for AssetObjectFieldError {}
|