Struct If
pub struct If<T>(pub T);Expand description
A [SystemParam] that wraps another parameter and causes its system to skip instead of failing when the parameter is invalid.
§Example
// This system will fail if `SomeResource` is not present.
fn fails_on_missing_resource(res: Res<SomeResource>) {}
// This system will skip without error if `SomeResource` is not present.
fn skips_on_missing_resource(res: If<Res<SomeResource>>) {
// The inner parameter is available using `Deref`
let some_resource: &SomeResource = &res;
}Tuple Fields§
§0: TImplementations§
§impl<T> If<T>
impl<T> If<T>
pub fn into_inner(self) -> T
pub fn into_inner(self) -> T
Returns the inner T.
The inner value is pub, so you can also obtain it by destructuring the parameter:
fn skips_on_missing_resource(If(res): If<Res<SomeResource>>) {
let some_resource: Res<SomeResource> = res;
}Trait Implementations§
§impl<T> SystemParam for If<T>where
T: SystemParam,
impl<T> SystemParam for If<T>where
T: SystemParam,
§type State = <T as SystemParam>::State
type State = <T as SystemParam>::State
Used to store data which persists across invocations of a system.
§type Item<'world, 'state> = If<<T as SystemParam>::Item<'world, 'state>>
type Item<'world, 'state> = If<<T as SystemParam>::Item<'world, 'state>>
The item type returned when constructing this system param.
The value of this associated type should be
Self, instantiated with new lifetimes. Read more§fn init_state(world: &mut World) -> <If<T> as SystemParam>::State
fn init_state(world: &mut World) -> <If<T> as SystemParam>::State
Creates a new instance of this param’s
State.§fn init_access(
state: &<If<T> as SystemParam>::State,
system_meta: &mut SystemMeta,
component_access_set: &mut FilteredAccessSet,
world: &mut World,
)
fn init_access( state: &<If<T> as SystemParam>::State, system_meta: &mut SystemMeta, component_access_set: &mut FilteredAccessSet, world: &mut World, )
§unsafe fn get_param<'world, 'state>(
state: &'state mut <If<T> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'world>,
change_tick: Tick,
) -> Result<<If<T> as SystemParam>::Item<'world, 'state>, SystemParamValidationError>
unsafe fn get_param<'world, 'state>( state: &'state mut <If<T> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'world>, change_tick: Tick, ) -> Result<<If<T> as SystemParam>::Item<'world, 'state>, SystemParamValidationError>
Creates a parameter to be passed into a
SystemParamFunction. Read more§fn apply(
state: &mut <If<T> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World,
)
fn apply( state: &mut <If<T> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World, )
Applies any deferred mutations stored in this [
SystemParam]’s state.
This is used to apply Commands during ApplyDeferred.§fn queue(
state: &mut <If<T> as SystemParam>::State,
system_meta: &SystemMeta,
world: DeferredWorld<'_>,
)
fn queue( state: &mut <If<T> as SystemParam>::State, system_meta: &SystemMeta, world: DeferredWorld<'_>, )
Queues any deferred mutations to be applied at the next
ApplyDeferred.§impl<P, B> SystemParamBuilder<If<P>> for IfBuilder<B>where
P: SystemParam,
B: SystemParamBuilder<P>,
impl<P, B> SystemParamBuilder<If<P>> for IfBuilder<B>where
P: SystemParam,
B: SystemParamBuilder<P>,
§fn build_state(self, world: &mut World) -> SystemState<P>
fn build_state(self, world: &mut World) -> SystemState<P>
Create a [
SystemState] from a SystemParamBuilder.
To create a system, call [SystemState::build_system] on the result.§fn build_system<Marker, In, Out, Func>(
self,
func: Func,
) -> IntoBuilderSystem<Marker, In, Out, Func, Self>where
Self: 'static,
Func: SystemParamFunction<Marker, Param = P>,
fn build_system<Marker, In, Out, Func>(
self,
func: Func,
) -> IntoBuilderSystem<Marker, In, Out, Func, Self>where
Self: 'static,
Func: SystemParamFunction<Marker, Param = P>,
impl<T> ReadOnlySystemParam for If<T>where
T: ReadOnlySystemParam,
Auto Trait Implementations§
impl<T> Freeze for If<T>where
T: Freeze,
impl<T> RefUnwindSafe for If<T>where
T: RefUnwindSafe,
impl<T> Send for If<T>where
T: Send,
impl<T> Sync for If<T>where
T: Sync,
impl<T> Unpin for If<T>where
T: Unpin,
impl<T> UnsafeUnpin for If<T>where
T: UnsafeUnpin,
impl<T> UnwindSafe for If<T>where
T: UnwindSafe,
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
§impl<T> IntoResult<T> for T
impl<T> IntoResult<T> for T
§fn into_result(self) -> Result<T, RunSystemError>
fn into_result(self) -> Result<T, RunSystemError>
Converts this type into the system output type.