pub struct LoadAndSave<L, S>where
    L: AssetLoader,
    S: AssetSaver<Asset = <L as AssetLoader>::Asset>,{ /* private fields */ }
Expand description

A flexible Process implementation that loads the source Asset using the L AssetLoader, then saves that L asset using the S AssetSaver.

When creating custom processors, it is generally recommended to use the LoadAndSave Process implementation, as it encourages you to write both an AssetLoader capable of loading assets without processing enabled and an AssetSaver that allows you to efficiently process that asset type when that is desirable by users. However you can also implement Process directly if LoadAndSave feels limiting or unnecessary.

This uses LoadAndSaveSettings to configure the processor.

Trait Implementations§

§

impl<L, S> From<S> for LoadAndSave<L, S>where L: AssetLoader, S: AssetSaver<Asset = <L as AssetLoader>::Asset>,

§

fn from(value: S) -> LoadAndSave<L, S>

Converts to this type from the input type.
§

impl<Loader, Saver> Process for LoadAndSave<Loader, Saver>where Loader: AssetLoader, Saver: AssetSaver<Asset = <Loader as AssetLoader>::Asset>,

§

type Settings = LoadAndSaveSettings<<Loader as AssetLoader>::Settings, <Saver as AssetSaver>::Settings>

The configuration / settings used to process the asset. This will be stored in the AssetMeta and is user-configurable per-asset.
§

type OutputLoader = <Saver as AssetSaver>::OutputLoader

The AssetLoader that will be used to load the final processed asset.
§

fn process<'a>( &'a self, context: &'a mut ProcessContext<'_>, meta: AssetMeta<(), LoadAndSave<Loader, Saver>>, writer: &'a mut (dyn AsyncWrite + Send + Unpin + Sync + 'static) ) -> Pin<Box<dyn Future<Output = Result<<<LoadAndSave<Loader, Saver> as Process>::OutputLoader as AssetLoader>::Settings, ProcessError>> + Send + 'a>>

Processes the asset stored on context in some way using the settings stored on meta. The results are written to writer. The final written processed asset is loadable using Process::OutputLoader. This load will use the returned AssetLoader::Settings.

Auto Trait Implementations§

§

impl<L, S> RefUnwindSafe for LoadAndSave<L, S>where S: RefUnwindSafe,

§

impl<L, S> Send for LoadAndSave<L, S>

§

impl<L, S> Sync for LoadAndSave<L, S>

§

impl<L, S> Unpin for LoadAndSave<L, S>where S: Unpin,

§

impl<L, S> UnwindSafe for LoadAndSave<L, S>where S: UnwindSafe,

Blanket Implementations§

source§

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

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

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

§

fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> 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 Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

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

source§

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

Mutably borrows from an owned value. Read more
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> Downcast for Twhere T: Any,

§

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

Convert 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.
§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> DowncastSync for Twhere T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
§

impl<P> ErasedProcessor for Pwhere P: Process,

§

fn process<'a>( &'a self, context: &'a mut ProcessContext<'_>, meta: Box<dyn AssetMetaDyn>, writer: &'a mut (dyn AsyncWrite + Send + Unpin + Sync + 'static) ) -> Pin<Box<dyn Future<Output = Result<Box<dyn AssetMetaDyn>, ProcessError>> + Send + 'a>>

Type-erased variant of Process::process.
§

fn deserialize_meta( &self, meta: &[u8] ) -> Result<Box<dyn AssetMetaDyn>, DeserializeMetaError>

Deserialized meta as type-erased AssetMeta, operating under the assumption that it matches the meta for the underlying Process impl.
§

fn default_meta(&self) -> Box<dyn AssetMetaDyn>

Returns the default type-erased AssetMeta for the underlying Process impl.
source§

impl<T> From<!> for T

source§

fn from(t: !) -> T

Converts to this type from the input type.
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<S> FromSample<S> for S

§

fn from_sample_(s: S) -> S

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 Twhere 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.

§

impl<T, U> ToSample<U> for Twhere U: FromSample<T>,

§

fn to_sample_(self) -> U

source§

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

§

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 Twhere U: TryFrom<T>,

§

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.
§

impl<T> Upcast<T> for T

§

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

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
§

impl<S, T> Duplex<S> for Twhere T: FromSample<S> + ToSample<S>,

§

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

§

impl<T> WasmNotSend for Twhere T: Send,

§

impl<T> WasmNotSync for Twhere T: Sync,