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§
Sourcefn write<'a>(
&'a self,
path: &'a Path,
) -> impl ConditionalSendFuture<Output = Result<Box<Writer>, AssetWriterError>>
fn write<'a>( &'a self, path: &'a Path, ) -> impl ConditionalSendFuture<Output = Result<Box<Writer>, AssetWriterError>>
Writes the full asset bytes at the provided path.
Sourcefn write_meta<'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>>
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<Output = Result<(), AssetWriterError>>
fn remove<'a>( &'a self, path: &'a Path, ) -> impl ConditionalSendFuture<Output = Result<(), AssetWriterError>>
Removes the asset stored at the given path.
Sourcefn remove_meta<'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>>
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<Output = Result<(), AssetWriterError>>
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
Sourcefn rename_meta<'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>>
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<Output = Result<(), AssetWriterError>>
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.
Sourcefn remove_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>>
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<Output = Result<(), AssetWriterError>>
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.
Sourcefn remove_assets_in_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>>
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<Output = Result<(), AssetWriterError>>
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
.
Sourcefn write_meta_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>>
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.