Trait AssetWriter

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

    // Provided methods
    fn write_bytes<'a>(
        &'a self,
        path: &'a Path,
        bytes: &'a [u8],
    ) -> impl ConditionalSendFuture { ... }
    fn write_meta_bytes<'a>(
        &'a self,
        path: &'a Path,
        bytes: &'a [u8],
    ) -> impl ConditionalSendFuture { ... }
}
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

Writes the full asset bytes at the provided path.

Source

fn write_meta<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture

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

Removes the asset stored at the given path.

Source

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

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

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

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

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

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

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

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

Writes the asset bytes to the given path.

Source

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

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§