Struct SnapshotBuilder

Source
pub struct SnapshotBuilder<'a> { /* private fields */ }
Expand description

A snapshot builder that can extract entities, resources, and rollback Checkpoints from a World.

Implementations§

Source§

impl<'a> SnapshotBuilder<'a>

Source

pub fn snapshot(world: &'a World) -> Self

Create a new SnapshotBuilder from the World.

You must call at least one of the extract methods or the built snapshot will be empty.

§Example
SnapshotBuilder::snapshot(world)
    // Extract all matching entities and resources
    .extract_all()

    // Clear all extracted entities without any components
    .clear_empty()

    // Build the `Snapshot`
    .build();
Source

pub fn checkpoint(world: &'a World) -> Self

Create a new SnapshotBuilder from the World.

Types extracted by this builder will respect the CheckpointRegistry.

You must call at least one of the extract methods or the built snapshot will be empty.

§Example
SnapshotBuilder::checkpoint(world)
    // Extract all matching entities and resources
    .extract_all()

    // Clear all extracted entities without any components
    .clear_empty()

    // Build the `Snapshot`
    .build();
Source§

impl<'a> SnapshotBuilder<'a>

Source

pub fn world<'w>(&self) -> &'w World
where 'a: 'w,

Retrieve the builder’s reference to the World.

Source

pub fn type_registry(self, type_registry: &'a TypeRegistry) -> Self

Set the TypeRegistry to be used for reflection.

If this is not provided, the AppTypeRegistry resource is used as a default.

Source§

impl SnapshotBuilder<'_>

Source

pub fn filter(self, filter: SceneFilter) -> Self

Specify a custom SceneFilter to be used with this builder.

This filter is applied to both components and resources.

Source

pub fn allow<T: Any>(self) -> Self

Allows the given type, T, to be included in the generated snapshot.

This method may be called multiple times for any number of types.

This is the inverse of deny. If T has already been denied, then it will be removed from the blacklist.

Source

pub fn deny<T: Any>(self) -> Self

Denies the given type, T, from being included in the generated snapshot.

This method may be called multiple times for any number of types.

This is the inverse of allow. If T has already been allowed, then it will be removed from the whitelist.

Source

pub fn allow_all(self) -> Self

Updates the filter to allow all types.

This is useful for resetting the filter so that types may be selectively denied.

Source

pub fn deny_all(self) -> Self

Updates the filter to deny all types.

This is useful for resetting the filter so that types may be selectively allowed.

Source§

impl SnapshotBuilder<'_>

Source

pub fn extract_entity(self, entity: Entity) -> Self

Extract a single entity from the builder’s World.

Source

pub fn extract_entities(self, entities: impl Iterator<Item = Entity>) -> Self

Extract the given entities from the builder’s World.

§Panics

If type_registry is not set or the AppTypeRegistry resource does not exist.

Source

pub fn extract_entities_matching<F: Fn(&EntityRef<'_>) -> bool>( self, filter: F, ) -> Self

Extract the entities matching the given filter from the builder’s World.

Source

pub fn extract_all_entities(self) -> Self

Extract all entities from the builder’s World.

Source

pub fn extract_entities_manual<F, B>(self, func: F) -> Self
where F: Fn(&EntityRef<'_>) -> Option<Vec<Box<dyn PartialReflect>>>,

Extract all entities with a custom extraction function.

Source

pub fn extract_prefab<F, P>(self, func: F) -> Self
where F: Fn(&EntityRef<'_>) -> Option<P>, P: Prefab + PartialReflect,

Extract all Prefab entities with a custom extraction function.

Source

pub fn extract_all_prefabs<P: Prefab>(self) -> Self

Extract all spawned instances of Prefab from the builder’s World.

Source

pub fn extract_resource<T: Resource>(self) -> Self

Extract a single resource from the builder’s World.

Source

pub fn extract_resource_by_path<T: AsRef<str>>(self, type_path: T) -> Self

Extract a single resource with the given type path from the builder’s World.

Source

pub fn extract_resources_by_path<T: AsRef<str>>( self, type_paths: impl Iterator<Item = T>, ) -> Self

Extract resources with the given type paths from the builder’s World.

§Panics

If type_registry is not set or the AppTypeRegistry resource does not exist.

Source

pub fn extract_resources_by_type_id( self, type_ids: impl Iterator<Item = TypeId>, ) -> Self

Extract resources with the given TypeId’s from the builder’s World.

§Panics

If type_registry is not set or the AppTypeRegistry resource does not exist.

Source

pub fn extract_all_resources(self) -> Self

Extract all resources from the builder’s World.

Source

pub fn extract_checkpoints(self) -> Self

Extract Checkpoints from the builder’s World.

§Panics

If type_registry is not set or the AppTypeRegistry resource does not exist.

Source

pub fn extract_all(self) -> Self

Extract all entities, and resources from the builder’s World.

Source

pub fn extract_all_with_checkpoints(self) -> Self

Extract all entities, resources, and Checkpoints from the builder’s World.

Source§

impl SnapshotBuilder<'_>

Source

pub fn clear_entities(self) -> Self

Clear all extracted entities.

Source

pub fn clear_resources(self) -> Self

Clear all extracted resources.

Source

pub fn clear_empty(self) -> Self

Clear all extracted entities without any components.

Source

pub fn clear_checkpoints(self) -> Self

Clear Checkpoints from the snapshot.

Source

pub fn clear(self) -> Self

Clear all extracted entities and resources.

Source§

impl SnapshotBuilder<'_>

Source

pub fn build(self) -> Snapshot

Build the extracted entities and resources into a Snapshot.

Auto Trait Implementations§

§

impl<'a> Freeze for SnapshotBuilder<'a>

§

impl<'a> !RefUnwindSafe for SnapshotBuilder<'a>

§

impl<'a> Send for SnapshotBuilder<'a>

§

impl<'a> Sync for SnapshotBuilder<'a>

§

impl<'a> Unpin for SnapshotBuilder<'a>

§

impl<'a> !UnwindSafe for SnapshotBuilder<'a>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T, U> AsBindGroupShaderType<U> for T
where U: ShaderType, &'a T: for<'a> Into<U>,

Source§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U

Return the T ShaderType for self. When used in AsBindGroup derives, it is safe to assume that all images in self exist.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast<T> for T

Source§

fn downcast(&self) -> &T

Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts 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>

Converts 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)

Converts &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)

Converts &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
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Upcast<T> for T

Source§

fn upcast(&self) -> Option<&T>

Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ConditionalSend for T
where T: Send,

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,

Source§

impl<T> WasmNotSend for T
where T: Send,

Source§

impl<T> WasmNotSendSync for T

Source§

impl<T> WasmNotSync for T
where T: Sync,