Trait bevy::asset::io::ErasedAssetWriter

pub trait ErasedAssetWriter: Send + Sync + 'static {
    // Required methods
    fn write<'a>(
        &'a self,
        path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AsyncWrite + Unpin + Sync + Send>, AssetWriterError>> + 'a>>;
    fn write_meta<'a>(
        &'a self,
        path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AsyncWrite + Unpin + Sync + Send>, AssetWriterError>> + 'a>>;
    fn remove<'a>(
        &'a self,
        path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn remove_meta<'a>(
        &'a self,
        path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn rename<'a>(
        &'a self,
        old_path: &'a Path,
        new_path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn rename_meta<'a>(
        &'a self,
        old_path: &'a Path,
        new_path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn remove_directory<'a>(
        &'a self,
        path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn remove_empty_directory<'a>(
        &'a self,
        path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn remove_assets_in_directory<'a>(
        &'a self,
        path: &'a Path
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn write_bytes<'a>(
        &'a self,
        path: &'a Path,
        bytes: &'a [u8]
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
    fn write_meta_bytes<'a>(
        &'a self,
        path: &'a Path,
        bytes: &'a [u8]
    ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>;
}
Expand description

Equivalent to an AssetWriter but using boxed futures, necessary eg. when using a dyn AssetWriter, as AssetWriter isn’t currently object safe.

Required Methods§

fn write<'a>( &'a self, path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AsyncWrite + Unpin + Sync + Send>, AssetWriterError>> + 'a>>

Writes the full asset bytes at the provided path.

fn write_meta<'a>( &'a self, path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AsyncWrite + Unpin + Sync + Send>, AssetWriterError>> + 'a>>

Writes the full asset meta bytes at the provided path. This should not include storage specific extensions like .meta.

fn remove<'a>( &'a self, path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Removes the asset stored at the given path.

fn remove_meta<'a>( &'a self, path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Removes the asset meta stored at the given path. This should not include storage specific extensions like .meta.

fn rename<'a>( &'a self, old_path: &'a Path, new_path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Renames the asset at old_path to new_path

fn rename_meta<'a>( &'a self, old_path: &'a Path, new_path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Renames the asset meta for the asset at old_path to new_path. This should not include storage specific extensions like .meta.

fn remove_directory<'a>( &'a self, path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Removes the directory at the given path, including all assets and directories in that directory.

fn remove_empty_directory<'a>( &'a self, path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Removes the directory at the given path, but only if it is completely empty. This will return an error if the directory is not empty.

fn remove_assets_in_directory<'a>( &'a self, path: &'a Path ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Removes all assets (and directories) in this directory, resulting in an empty directory.

fn write_bytes<'a>( &'a self, path: &'a Path, bytes: &'a [u8] ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Writes the asset bytes to the given path.

fn write_meta_bytes<'a>( &'a self, path: &'a Path, bytes: &'a [u8] ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<(), AssetWriterError>> + 'a>>

Writes the asset meta bytes to the given path.

Implementors§

§

impl<T> ErasedAssetWriter for T
where T: AssetWriter,