pub struct ReflectResource(/* private fields */);Expand description
A struct used to operate on reflected Resource of a type.
A ReflectResource for type T can be obtained via
bevy_reflect::TypeRegistration::data.
Implementations§
Source§impl ReflectResource
impl ReflectResource
Sourcepub fn insert(
&self,
world: &mut World,
resource: &(dyn PartialReflect + 'static),
registry: &TypeRegistry,
)
pub fn insert( &self, world: &mut World, resource: &(dyn PartialReflect + 'static), registry: &TypeRegistry, )
Sourcepub fn apply(
&self,
world: &mut World,
resource: &(dyn PartialReflect + 'static),
)
pub fn apply( &self, world: &mut World, resource: &(dyn PartialReflect + 'static), )
Sourcepub fn apply_or_insert(
&self,
world: &mut World,
resource: &(dyn PartialReflect + 'static),
registry: &TypeRegistry,
)
pub fn apply_or_insert( &self, world: &mut World, resource: &(dyn PartialReflect + 'static), registry: &TypeRegistry, )
Uses reflection to set the value of this Resource type in the world to the given value or insert a new one if it does not exist.
Sourcepub fn remove(&self, world: &mut World)
pub fn remove(&self, world: &mut World)
Removes this Resource type from the world. Does nothing if it doesn’t exist.
Sourcepub fn reflect<'w, 's>(
&self,
resources: impl Into<FilteredResources<'w, 's>>,
) -> Result<&'w (dyn Reflect + 'static), ResourceFetchError>
pub fn reflect<'w, 's>( &self, resources: impl Into<FilteredResources<'w, 's>>, ) -> Result<&'w (dyn Reflect + 'static), ResourceFetchError>
Sourcepub fn reflect_mut<'w, 's>(
&self,
resources: impl Into<FilteredResourcesMut<'w, 's>>,
) -> Result<Mut<'w, dyn Reflect>, ResourceFetchError>
pub fn reflect_mut<'w, 's>( &self, resources: impl Into<FilteredResourcesMut<'w, 's>>, ) -> Result<Mut<'w, dyn Reflect>, ResourceFetchError>
Gets the value of this Resource type from the world as a mutable reflected reference.
Note that &mut World is a valid type for resources.
Sourcepub unsafe fn reflect_unchecked_mut<'w>(
&self,
world: UnsafeWorldCell<'w>,
) -> Option<Mut<'w, dyn Reflect>>
pub unsafe fn reflect_unchecked_mut<'w>( &self, world: UnsafeWorldCell<'w>, ) -> Option<Mut<'w, dyn Reflect>>
§Safety
This method does not prevent you from having two mutable pointers to the same data, violating Rust’s aliasing rules. To avoid this:
- Only call this method with an
UnsafeWorldCellwhich can be used to mutably access the resource. - Don’t call this method more than once in the same scope for a given
Resource.
Sourcepub fn copy(
&self,
source_world: &World,
destination_world: &mut World,
registry: &TypeRegistry,
)
pub fn copy( &self, source_world: &World, destination_world: &mut World, registry: &TypeRegistry, )
Sourcepub fn register_resource(&self, world: &mut World) -> ComponentId
pub fn register_resource(&self, world: &mut World) -> ComponentId
Register the type of this Resource in World, returning the ComponentId
Sourcepub fn new(&self, fns: ReflectResourceFns) -> ReflectResource
pub fn new(&self, fns: ReflectResourceFns) -> ReflectResource
Create a custom implementation of ReflectResource.
This is an advanced feature, useful for scripting implementations, that should not be used by most users unless you know what you are doing.
Usually you should derive Reflect and add the #[reflect(Resource)] component
to generate a ReflectResource implementation automatically.
See ReflectResourceFns for more information.
Sourcepub fn fn_pointers(&self) -> &ReflectResourceFns
pub fn fn_pointers(&self) -> &ReflectResourceFns
The underlying function pointers implementing methods on ReflectResource.
This is useful when you want to keep track locally of an individual function pointer.
Calling TypeRegistry::get followed by
TypeRegistration::data::<ReflectResource> can be costly if done several
times per frame. Consider cloning ReflectResource and keeping it
between frames, cloning a ReflectResource is very cheap.
If you only need a subset of the methods on ReflectResource,
use fn_pointers to get the underlying ReflectResourceFns
and copy the subset of function pointers you care about.
Trait Implementations§
Source§impl Clone for ReflectResource
impl Clone for ReflectResource
Source§fn clone(&self) -> ReflectResource
fn clone(&self) -> ReflectResource
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl<R> FromType<R> for ReflectResource
impl<R> FromType<R> for ReflectResource
fn from_type() -> ReflectResource
Auto Trait Implementations§
impl Freeze for ReflectResource
impl RefUnwindSafe for ReflectResource
impl Send for ReflectResource
impl Sync for ReflectResource
impl Unpin for ReflectResource
impl UnwindSafe for ReflectResource
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> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
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<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