pub struct Assets { /* private fields */ }Implementations§
Source§impl Assets
impl Assets
Sourcepub fn for_thread(&self) -> Assets
pub fn for_thread(&self) -> Assets
A copy for a worker thread (wasi-threads): the same names and versions, its own
file handles and cache (files are reopened or duplicated, memory copied). Changes
made later (set_asset, --watch-asset) reach threads started after them.
Source§impl Assets
impl Assets
pub fn new() -> Assets
pub fn len(&self) -> usize
pub fn is_empty(&self) -> bool
Sourcepub fn insert_memory(&mut self, name: &str, bytes: Vec<u8>)
pub fn insert_memory(&mut self, name: &str, bytes: Vec<u8>)
Asset from memory (overrides any entry with the same name).
Sourcepub fn insert_file(&mut self, name: &str, path: &Path) -> Result<(), String>
pub fn insert_file(&mut self, name: &str, path: &Path) -> Result<(), String>
Asset backed by a file, opened now and read on demand (overrides any entry with the same name).
Sourcepub fn add_dir(
&mut self,
prefix: Option<&str>,
dir: &Path,
) -> Result<usize, String>
pub fn add_dir( &mut self, prefix: Option<&str>, dir: &Path, ) -> Result<usize, String>
Expose every regular file under dir (recursively), named
[prefix/]relative/path. Existing names are kept (explicit assets win).
Returns the number of files added. Call Assets::finish afterwards.
Sourcepub fn add_mods(
&mut self,
dir: &Path,
) -> Result<(Vec<String>, Vec<(String, String)>), String>
pub fn add_mods( &mut self, dir: &Path, ) -> Result<(Vec<String>, Vec<(String, String)>), String>
--mods <dir>: the folder’s resource packs (*.pck, *.zip, top level, not
hidden), each read on demand as mods/<file name>, sorted by name (the load
order). Files that can’t be read are refused, not fatal: the game gets them as
asset mods.refused (name<TAB>reason lines) and they’re logged. Returns
(mounted, refused).
Sourcepub fn refuse_mod(&mut self, file: &str, why: &str)
pub fn refuse_mod(&mut self, file: &str, why: &str)
Refuse a mounted mod (before the game starts): unmounted, and its line added to
mods.refused.
Sourcepub fn set(&mut self, name: &str, bytes: Vec<u8>) -> u32
pub fn set(&mut self, name: &str, bytes: Vec<u8>) -> u32
Add or replace an asset from memory while the game runs (between frames): it gets a new version. Returns that version.
Sourcepub fn set_file(&mut self, name: &str, path: &Path) -> Result<u32, String>
pub fn set_file(&mut self, name: &str, path: &Path) -> Result<u32, String>
Assets::set with a file read on demand (opened now).
Sourcepub fn remove(&mut self, name: &str) -> bool
pub fn remove(&mut self, name: &str) -> bool
Remove an asset while the game runs (between frames). False if there was none.
Sourcepub fn finish(&mut self)
pub fn finish(&mut self)
Build the case-insensitive index and the sorted name list; logs collisions.
Sourcepub fn get(&self, name: &str) -> Option<Asset<'_>>
pub fn get(&self, name: &str) -> Option<Asset<'_>>
Look an asset up (exact name, then case-insensitively among folder entries).
Sourcepub fn size(&self, name: &str) -> Option<u64>
pub fn size(&self, name: &str) -> Option<u64>
Current size in bytes, or None if there is no such asset.
Sourcepub fn read_at(&self, name: &str, offset: u64, dst: &mut [u8]) -> Option<usize>
pub fn read_at(&self, name: &str, offset: u64, dst: &mut [u8]) -> Option<usize>
Copy bytes starting at offset into dst (see Asset::read_at), or
None if there is no such asset.
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for Assets
impl !RefUnwindSafe for Assets
impl !Sync for Assets
impl Send for Assets
impl Unpin for Assets
impl UnsafeUnpin for Assets
impl UnwindSafe for Assets
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more