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.
Implementors§
impl AssetWriter for FileAssetWriter
multi_threaded
and non-WebAssembly only.