bevy_asset::io

Trait AssetWriter

Source
pub trait AssetWriter:
    Send
    + Sync
    + 'static {
    // Required methods
    fn write<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<Box<Writer>, AssetWriterError>>;
    fn write_meta<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<Box<Writer>, AssetWriterError>>;
    fn remove<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;
    fn remove_meta<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;
    fn rename<'a>(
        &'a self,
        old_path: &'a Path,
        new_path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;
    fn rename_meta<'a>(
        &'a self,
        old_path: &'a Path,
        new_path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;
    fn create_directory<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;
    fn remove_directory<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;
    fn remove_empty_directory<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;
    fn remove_assets_in_directory<'a>(
        &'a self,
        path: &'a Path,
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>;

    // Provided methods
    fn write_bytes<'a>(
        &'a self,
        path: &'a Path,
        bytes: &'a [u8],
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>> { ... }
    fn write_meta_bytes<'a>(
        &'a self,
        path: &'a Path,
        bytes: &'a [u8],
    ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>> { ... }
}
Expand description

Preforms write operations on an asset storage. AssetWriter exposes a “virtual filesystem” API, where asset bytes and asset metadata bytes are both stored and accessible for a given path. This trait is not object safe, if needed use a dyn ErasedAssetWriter instead.

This trait defines asset-agnostic mechanisms to write bytes to a storage system. For the per-asset-type saving/loading logic, see AssetSaver and AssetLoader.

For a complementary version of this trait that can read assets from storage, see AssetReader.

Required Methods§

Source

fn write<'a>( &'a self, path: &'a Path, ) -> impl ConditionalSendFuture<Output = Result<Box<Writer>, AssetWriterError>>

Writes the full asset bytes at the provided path.

Source

fn write_meta<'a>( &'a self, path: &'a Path, ) -> impl ConditionalSendFuture<Output = Result<Box<Writer>, AssetWriterError>>

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

Source

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

Removes the asset stored at the given path.

Source

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

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

Source

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

Renames the asset at old_path to new_path

Source

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

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

Source

fn create_directory<'a>( &'a self, path: &'a Path, ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>

Creates a directory at the given path, including all parent directories if they do not already exist.

Source

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

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

Source

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

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.

Source

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

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

Provided Methods§

Source

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

Writes the asset bytes to the given path.

Source

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

Writes the asset meta bytes to the given path.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl AssetWriter for FileAssetWriter

Available on non-crate feature multi_threaded and non-WebAssembly only.