
# Objective We deprecated quite a few APIs in 0.13. 0.13 has shipped already. It should be OK to remove them in 0.14's release. Fixes #4059. Fixes #9011. ## Solution Remove them.
35 lines
1.5 KiB
Rust
35 lines
1.5 KiB
Rust
use thiserror::Error;
|
|
|
|
use crate::entity::Entity;
|
|
|
|
/// An error that occurs when retrieving a specific [`Entity`]'s query result from [`Query`](crate::system::Query) or [`QueryState`](crate::query::QueryState).
|
|
// TODO: return the type_name as part of this error
|
|
#[derive(Debug, PartialEq, Eq, Clone, Copy, Error)]
|
|
pub enum QueryEntityError {
|
|
/// The given [`Entity`]'s components do not match the query.
|
|
///
|
|
/// Either it does not have a requested component, or it has a component which the query filters out.
|
|
#[error("The components of entity {0:?} do not match the query")]
|
|
QueryDoesNotMatch(Entity),
|
|
/// The given [`Entity`] does not exist.
|
|
#[error("The entity {0:?} does not exist")]
|
|
NoSuchEntity(Entity),
|
|
/// The [`Entity`] was requested mutably more than once.
|
|
///
|
|
/// See [`QueryState::get_many_mut`](crate::query::QueryState::get_many_mut) for an example.
|
|
#[error("The entity {0:?} was requested mutably more than once")]
|
|
AliasedMutability(Entity),
|
|
}
|
|
|
|
/// An error that occurs when evaluating a [`Query`](crate::system::Query) or [`QueryState`](crate::query::QueryState) as a single expected result via
|
|
/// [`get_single`](crate::system::Query::get_single) or [`get_single_mut`](crate::system::Query::get_single_mut).
|
|
#[derive(Debug, Error)]
|
|
pub enum QuerySingleError {
|
|
/// No entity fits the query.
|
|
#[error("No entities fit the query {0}")]
|
|
NoEntities(&'static str),
|
|
/// Multiple entities fit the query.
|
|
#[error("Multiple entities fit the query {0}")]
|
|
MultipleEntities(&'static str),
|
|
}
|