use super::EntityUID;
use crate::transitive_closure;
use std::io;
use thiserror::Error;
#[derive(Debug, Error)]
pub enum EntitiesError {
#[error("error while serializing entities: {0}")]
SerializationError(#[from] crate::entities::JsonSerializationError),
#[error("error while deserializing entities: {0}")]
DeserializationError(#[from] crate::entities::JsonDeserializationError),
#[error("IO error from the entities module: {0}")]
IOError(#[from] io::Error),
#[error("transitive closure error: {0}")]
TransitiveClosureError(#[from] Box<transitive_closure::Err<EntityUID>>),
}
pub type Result<T> = std::result::Result<T, EntitiesError>;