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§
Sourcefn write<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
fn write<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
Writes the full asset bytes at the provided path.
Sourcefn write_meta<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
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.
Sourcefn remove<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
fn remove<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
Removes the asset stored at the given path.
Sourcefn remove_meta<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
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.
Sourcefn rename<'a>(
&'a self,
old_path: &'a Path,
new_path: &'a Path,
) -> impl ConditionalSendFuture
fn rename<'a>( &'a self, old_path: &'a Path, new_path: &'a Path, ) -> impl ConditionalSendFuture
Renames the asset at old_path to new_path
Sourcefn rename_meta<'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
Renames the asset meta for the asset at old_path to new_path.
This should not include storage specific extensions like .meta.
Sourcefn create_directory<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
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.
Sourcefn remove_directory<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture
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.
Sourcefn remove_empty_directory<'a>(
&'a self,
path: &'a Path,
) -> impl ConditionalSendFuture
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.
Sourcefn remove_assets_in_directory<'a>(
&'a self,
path: &'a Path,
) -> impl ConditionalSendFuture
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§
Sourcefn write_bytes<'a>(
&'a self,
path: &'a Path,
bytes: &'a [u8],
) -> impl ConditionalSendFuture
fn write_bytes<'a>( &'a self, path: &'a Path, bytes: &'a [u8], ) -> impl ConditionalSendFuture
Writes the asset bytes to the given path.
Sourcefn write_meta_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
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.