pub struct SystemParamValidationError {
pub skipped: bool,
pub message: Cow<'static, str>,
pub param: Cow<'static, str>,
pub field: Cow<'static, str>,
}
Expand description
An error that occurs when a system parameter is not valid, used by system executors to determine what to do with a system.
Returned as an error from SystemParam::validate_param
,
and handled using the unified error handling mechanisms defined in bevy_ecs::error
.
Fields§
§skipped: bool
Whether the system should be skipped.
If false
, the error should be handled.
By default, this will result in a panic. See crate::error
for more information.
This is the default behavior, and is suitable for system params that should always be valid,
either because sensible fallback behavior exists (like Query
or because
failures in validation should be considered a bug in the user’s logic that must be immediately addressed (like Res
).
If true
, the system should be skipped.
This is suitable for system params that are intended to only operate in certain application states, such as Single
.
message: Cow<'static, str>
A message describing the validation error.
param: Cow<'static, str>
A string identifying the invalid parameter. This is usually the type name of the parameter.
field: Cow<'static, str>
A string identifying the field within a parameter using #[derive(SystemParam)]
.
This will be an empty string for other parameters.
This will be printed after param
in the Display
impl, and should include a ::
prefix if non-empty.
Implementations§
Source§impl SystemParamValidationError
impl SystemParamValidationError
Sourcepub fn skipped<T>(
message: impl Into<Cow<'static, str>>,
) -> SystemParamValidationError
pub fn skipped<T>( message: impl Into<Cow<'static, str>>, ) -> SystemParamValidationError
Constructs a SystemParamValidationError
that skips the system.
The parameter name is initialized to the type name of T
, so a SystemParam
should usually pass Self
.
Sourcepub fn invalid<T>(
message: impl Into<Cow<'static, str>>,
) -> SystemParamValidationError
pub fn invalid<T>( message: impl Into<Cow<'static, str>>, ) -> SystemParamValidationError
Constructs a SystemParamValidationError
for an invalid parameter that should be treated as an error.
The parameter name is initialized to the type name of T
, so a SystemParam
should usually pass Self
.
Sourcepub fn new<T>(
skipped: bool,
message: impl Into<Cow<'static, str>>,
field: impl Into<Cow<'static, str>>,
) -> SystemParamValidationError
pub fn new<T>( skipped: bool, message: impl Into<Cow<'static, str>>, field: impl Into<Cow<'static, str>>, ) -> SystemParamValidationError
Constructs a SystemParamValidationError
for an invalid parameter.
The parameter name is initialized to the type name of T
, so a SystemParam
should usually pass Self
.
Trait Implementations§
Source§impl Clone for SystemParamValidationError
impl Clone for SystemParamValidationError
Source§fn clone(&self) -> SystemParamValidationError
fn clone(&self) -> SystemParamValidationError
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for SystemParamValidationError
impl Debug for SystemParamValidationError
Source§impl Display for SystemParamValidationError
impl Display for SystemParamValidationError
Source§impl Error for SystemParamValidationError
impl Error for SystemParamValidationError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
impl Eq for SystemParamValidationError
impl StructuralPartialEq for SystemParamValidationError
Auto Trait Implementations§
impl Freeze for SystemParamValidationError
impl RefUnwindSafe for SystemParamValidationError
impl Send for SystemParamValidationError
impl Sync for SystemParamValidationError
impl Unpin for SystemParamValidationError
impl UnwindSafe for SystemParamValidationError
Blanket Implementations§
Source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
Source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
, which can then be
downcast
into Box<dyn ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
, which can then be further
downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<E> InstrumentError for Ewhere
TracedError<E>: From<E>,
impl<E> InstrumentError for Ewhere
TracedError<E>: From<E>,
Source§type Instrumented = TracedError<E>
type Instrumented = TracedError<E>
Source§fn in_current_span(self) -> <E as InstrumentError>::Instrumented
fn in_current_span(self) -> <E as InstrumentError>::Instrumented
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more