Skip to main content

AssetServer

Struct AssetServer 

Source
pub struct AssetServer { /* private fields */ }
Expand description

The central asset server: coordinates loading, caching, hot-reload, and streaming.

§Lifecycle

  1. Register loaders with register_loader.
  2. Request assets with load or load_manifest.
  3. Call update each frame to process the streaming queue and hot-reload.
  4. Retrieve loaded data via get.

Implementations§

Source§

impl AssetServer

Source

pub fn new_with_config(config: AssetServerConfig) -> Self

Create a new asset server with the given configuration.

Source

pub fn new() -> Self

Create a new asset server with default configuration.

Source

pub fn set_root_dir(&mut self, dir: impl Into<PathBuf>)

Change the root asset directory.

Source

pub fn register_loader<A: Asset, L: AssetLoader<A>>(&mut self, loader: L)

Register a loader for asset type A.

The loader’s extensions() are used to match file paths. If multiple loaders claim the same extension, the most recently registered one takes precedence.

Source

pub fn mount_pack(&mut self, pack: AssetPack)

Mount an AssetPack. Files in packs are resolved before the file-system.

Source

pub fn load<A: Asset>(&mut self, path: impl Into<AssetPath>) -> AssetHandle<A>

Request that path be loaded as asset type A.

Returns an AssetHandle<A> immediately. The handle will become populated after update processes the request.

If the asset is already loaded, a handle to the existing data is returned.

Source

pub fn load_with_priority<A: Asset>( &mut self, path: impl Into<AssetPath>, priority: StreamPriority, ) -> AssetHandle<A>

Like load but with an explicit priority.

Source

pub fn load_manifest(&mut self, manifest: &AssetManifest)

Queue all assets declared in manifest for loading.

Callers should subsequently call typed load::<T>() for each entry to obtain typed handles; this method ensures the paths are pre-registered at the declared priorities.

Source

pub fn update(&mut self)

Drive the asset server for one frame.

This processes pending streaming requests (up to stream_batch_size per call) and polls the hot-reload watcher. Call once per frame.

Source

pub fn get<A: Asset>(&mut self, handle: &AssetHandle<A>) -> Option<Arc<A>>

Try to get the data for handle.

Returns None if the asset is not yet loaded or has been evicted.

Source

pub fn load_state<A: Asset>(&self, handle: &AssetHandle<A>) -> LoadState

Get the LoadState of handle.

Source

pub fn reload<A: Asset>(&mut self, handle: &AssetHandle<A>)

Force an immediate synchronous reload of an asset by handle.

Source

pub fn insert<A: Asset>( &mut self, path: impl Into<AssetPath>, asset: A, ) -> AssetHandle<A>

Insert an already-constructed asset directly into the registry.

Returns a handle to the inserted asset. Useful for procedurally generated assets that have no backing file.

Source

pub fn stats(&self) -> &AssetServerStats

Return a snapshot of the current server statistics.

Source

pub fn asset_count(&self) -> usize

Number of assets currently tracked by the registry.

Source

pub fn is_idle(&self) -> bool

true if all streaming requests have been processed.

Source

pub fn read_bytes( &mut self, path: &AssetPath, ) -> Result<(Vec<u8>, Option<SystemTime>), String>

Read bytes for a given path, checking packs first then the file-system. Exposed as pub for testing and pack inspection utilities.

Trait Implementations§

Source§

impl Debug for AssetServer

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AssetServer

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Sync + Send>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,