Struct EmbeddedAssetReader

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

Struct which can be used to retrieve embedded assets directly without the normal Bevy Handle<T> approach. This is useful for cases where you need an asset outside the Bevy ECS environment.

This is only available when the default-source cargo feature is enabled.

Example usage is below which assumes you have an asset named image.png in your assets folder (which this crate embeds at compile time).

use bevy_embedded_assets::{DataReader, EmbeddedAssetReader};
use std::path::Path;

fn some_bevy_system() {
    let embedded: EmbeddedAssetReader = EmbeddedAssetReader::preloaded();
    let reader: DataReader = embedded.load_path_sync(&Path::new("image.png")).unwrap();
    let image_data: Vec<u8> = reader.0.to_vec();
    // Do what you need with the data
}

Implementations§

Source§

impl EmbeddedAssetReader

Source

pub fn preloaded() -> Self

Create an EmbeddedAssetReader loaded with all the assets found by the build script.

This ensures the EmbeddedAssetReader has all (embedded) assets loaded and can be used directly without the typical Bevy Handle<T> approach. Retrieve assets directly after calling preloaded with EmbeddedAssetReader::load_path_sync().

Source

pub fn load_path_sync( &self, path: &Path, ) -> Result<DataReader, AssetReaderError>

Get the data from the asset matching the path provided.

§Errors

This will returns an error if the path is not known.

Trait Implementations§

Source§

impl AssetReader for EmbeddedAssetReader

Source§

async fn read<'a>( &'a self, path: &'a Path, ) -> Result<impl Reader + 'a, AssetReaderError>

Returns a future to load the full file data at the provided path. Read more
Source§

async fn read_meta<'a>( &'a self, path: &'a Path, ) -> Result<impl Reader + 'a, AssetReaderError>

Returns a future to load the full file data at the provided path.
Source§

async fn read_directory<'a>( &'a self, path: &'a Path, ) -> Result<Box<PathStream>, AssetReaderError>

Returns an iterator of directory entry names at the provided path.
Source§

async fn is_directory<'a>( &'a self, path: &'a Path, ) -> Result<bool, AssetReaderError>

Returns true if the provided path points to a directory.
Source§

fn read_meta_bytes<'a>(&'a self, path: &'a Path) -> impl ConditionalSendFuture

Reads asset metadata bytes at the given path into a Vec<u8>. This is a convenience function that wraps AssetReader::read_meta by default.
Source§

impl Debug for EmbeddedAssetReader

Source§

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

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

impl Default for EmbeddedAssetReader

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>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

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

Converts &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> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> ErasedAssetReader for T
where T: AssetReader,

Source§

fn read<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn Reader + 'a>, AssetReaderError>> + 'a>>

Returns a future to load the full file data at the provided path.
Source§

fn read_meta<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn Reader + 'a>, AssetReaderError>> + 'a>>

Returns a future to load the full file data at the provided path.
Source§

fn read_directory<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn Stream<Item = PathBuf> + Send + Unpin>, AssetReaderError>> + 'a>>

Returns an iterator of directory entry names at the provided path.
Source§

fn is_directory<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<bool, AssetReaderError>> + 'a>>

Returns true if the provided path points to a directory.
Source§

fn read_meta_bytes<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Vec<u8>, AssetReaderError>> + 'a>>

Reads asset metadata bytes at the given path into a Vec<u8>. This is a convenience function that wraps ErasedAssetReader::read_meta by default.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
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<T> ConditionalSend for T
where T: Send,

Source§

impl<T> Settings for T
where T: 'static + Send + Sync,