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
.