pub struct LoadAndSave<L: AssetLoader, S: AssetSaver<Asset = L::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
.
This is a specialized use case of LoadTransformAndSave
and is useful where there is no asset manipulation
such as when compressing assets.
This uses LoadAndSaveSettings
to configure the processor.
Trait Implementations§
Source§impl<L: AssetLoader, S: AssetSaver<Asset = L::Asset>> From<S> for LoadAndSave<L, S>
impl<L: AssetLoader, S: AssetSaver<Asset = L::Asset>> From<S> for LoadAndSave<L, S>
Source§impl<Loader: AssetLoader, Saver: AssetSaver<Asset = Loader::Asset>> Process for LoadAndSave<Loader, Saver>
impl<Loader: AssetLoader, Saver: AssetSaver<Asset = Loader::Asset>> Process for LoadAndSave<Loader, Saver>
Source§type Settings = LoadAndSaveSettings<<Loader as AssetLoader>::Settings, <Saver as AssetSaver>::Settings>
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.Source§type OutputLoader = <Saver as AssetSaver>::OutputLoader
type OutputLoader = <Saver as AssetSaver>::OutputLoader
The
AssetLoader
that will be used to load the final processed asset.Source§async fn process<'a>(
&'a self,
context: &'a mut ProcessContext<'_>,
meta: AssetMeta<(), Self>,
writer: &'a mut Writer,
) -> Result<<Self::OutputLoader as AssetLoader>::Settings, ProcessError>
async fn process<'a>( &'a self, context: &'a mut ProcessContext<'_>, meta: AssetMeta<(), Self>, writer: &'a mut Writer, ) -> Result<<Self::OutputLoader as AssetLoader>::Settings, ProcessError>
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> Freeze for LoadAndSave<L, S>where
S: Freeze,
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> 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
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>
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
.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
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
.Source§fn as_any(&self) -> &(dyn Any + 'static)
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.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<P> ErasedProcessor for Pwhere
P: Process,
impl<P> ErasedProcessor for Pwhere
P: Process,
Source§fn process<'a>(
&'a self,
context: &'a mut ProcessContext<'_>,
meta: Box<dyn AssetMetaDyn>,
writer: &'a mut (dyn AsyncWrite + Sync + Unpin + Send + 'static),
) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AssetMetaDyn>, ProcessError>> + 'a>>
fn process<'a>( &'a self, context: &'a mut ProcessContext<'_>, meta: Box<dyn AssetMetaDyn>, writer: &'a mut (dyn AsyncWrite + Sync + Unpin + Send + 'static), ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AssetMetaDyn>, ProcessError>> + 'a>>
Type-erased variant of
Process::process
.