mirror of
https://gitlab.com/veloren/veloren.git
synced 2024-08-30 18:12:32 +00:00
72 lines
2.2 KiB
Rust
72 lines
2.2 KiB
Rust
use common::uid::Uid;
|
|
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub enum RetrieveError {
|
|
EcsAccessError(EcsAccessError),
|
|
OtherError(String),
|
|
DataReadError,
|
|
BincodeError(String),
|
|
InvalidType,
|
|
}
|
|
|
|
impl core::fmt::Display for RetrieveError {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
match self {
|
|
RetrieveError::EcsAccessError(e) => {
|
|
write!(f, "RetrieveError: {}", e)
|
|
},
|
|
RetrieveError::OtherError(e) => {
|
|
write!(f, "RetrieveError: Unknown error: {}", e)
|
|
},
|
|
RetrieveError::DataReadError => {
|
|
write!(
|
|
f,
|
|
"RetrieveError: Can't pass data through WASM FFI: WASM Memory is corrupted"
|
|
)
|
|
},
|
|
RetrieveError::BincodeError(e) => {
|
|
write!(f, "RetrieveError: Bincode error: {}", e)
|
|
},
|
|
RetrieveError::InvalidType => {
|
|
write!(
|
|
f,
|
|
"RetrieveError: This type wasn't expected as the result for this Retrieve"
|
|
)
|
|
},
|
|
}
|
|
}
|
|
}
|
|
|
|
#[derive(Debug, Serialize, Deserialize)]
|
|
pub enum EcsAccessError {
|
|
EcsPointerNotAvailable,
|
|
EcsComponentNotFound(Uid, String),
|
|
EcsResourceNotFound(String),
|
|
EcsEntityNotFound(Uid),
|
|
}
|
|
|
|
impl core::fmt::Display for EcsAccessError {
|
|
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
|
|
match self {
|
|
EcsAccessError::EcsPointerNotAvailable => {
|
|
write!(f, "EcsAccessError can't read the ECS pointer")
|
|
},
|
|
EcsAccessError::EcsComponentNotFound(a, b) => {
|
|
write!(
|
|
f,
|
|
"EcsAccessError can't find component {} for entity from UID {}",
|
|
b, a
|
|
)
|
|
},
|
|
EcsAccessError::EcsResourceNotFound(a) => {
|
|
write!(f, "EcsAccessError can't find resource {}", a)
|
|
},
|
|
EcsAccessError::EcsEntityNotFound(a) => {
|
|
write!(f, "EcsAccessError can't find entity from UID {}", a)
|
|
},
|
|
}
|
|
}
|
|
}
|