pub struct FileAssetReader { /* private fields */ }Available on non-WebAssembly only.
Expand description
I/O implementation for the local filesystem.
This asset I/O is fully featured but it’s not available on android and wasm targets.
Implementations§
source§impl FileAssetReader
impl FileAssetReader
sourcepub fn new<P>(path: P) -> FileAssetReader
pub fn new<P>(path: P) -> FileAssetReader
Creates a new FileAssetIo at a path relative to the executable’s directory, optionally
watching for changes.
See get_base_path below.
sourcepub fn get_base_path() -> PathBuf
pub fn get_base_path() -> PathBuf
Returns the base path of the assets directory, which is normally the executable’s parent directory.
If the CARGO_MANIFEST_DIR environment variable is set, then its value will be used
instead. It’s set by cargo when running with cargo run.
Examples found in repository?
examples/animation/animation_graph.rs (line 186)
153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205
fn setup_assets_programmatically(
commands: &mut Commands,
asset_server: &mut AssetServer,
animation_graphs: &mut Assets<AnimationGraph>,
_save: bool,
) {
// Create the nodes.
let mut animation_graph = AnimationGraph::new();
let blend_node = animation_graph.add_blend(0.5, animation_graph.root);
animation_graph.add_clip(
asset_server.load(GltfAssetLabel::Animation(0).from_asset("models/animated/Fox.glb")),
1.0,
animation_graph.root,
);
animation_graph.add_clip(
asset_server.load(GltfAssetLabel::Animation(1).from_asset("models/animated/Fox.glb")),
1.0,
blend_node,
);
animation_graph.add_clip(
asset_server.load(GltfAssetLabel::Animation(2).from_asset("models/animated/Fox.glb")),
1.0,
blend_node,
);
// If asked to save, do so.
#[cfg(not(target_arch = "wasm32"))]
if _save {
let animation_graph = animation_graph.clone();
IoTaskPool::get()
.spawn(async move {
let mut animation_graph_writer = File::create(Path::join(
&FileAssetReader::get_base_path(),
Path::join(Path::new("assets"), Path::new(ANIMATION_GRAPH_PATH)),
))
.expect("Failed to open the animation graph asset");
ron::ser::to_writer_pretty(
&mut animation_graph_writer,
&animation_graph,
PrettyConfig::default(),
)
.expect("Failed to serialize the animation graph");
})
.detach();
}
// Add the graph.
let handle = animation_graphs.add(animation_graph);
// Save the assets in a resource.
commands.insert_resource(ExampleAnimationGraph(handle));
}Trait Implementations§
source§impl AssetReader for FileAssetReader
impl AssetReader for FileAssetReader
source§async fn read<'a>(
&'a self,
path: &'a Path,
) -> Result<Box<dyn AsyncReadAndSeek + Unpin + Sync + Send + 'a>, AssetReaderError>
async fn read<'a>( &'a self, path: &'a Path, ) -> Result<Box<dyn AsyncReadAndSeek + Unpin + Sync + Send + 'a>, AssetReaderError>
Returns a future to load the full file data at the provided path.
source§async fn read_meta<'a>(
&'a self,
path: &'a Path,
) -> Result<Box<dyn AsyncReadAndSeek + Unpin + Sync + Send + 'a>, AssetReaderError>
async fn read_meta<'a>( &'a self, path: &'a Path, ) -> Result<Box<dyn AsyncReadAndSeek + Unpin + Sync + Send + '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<dyn Stream<Item = PathBuf> + Unpin + Send>, AssetReaderError>
async fn read_directory<'a>( &'a self, path: &'a Path, ) -> Result<Box<dyn Stream<Item = PathBuf> + Unpin + Send>, 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>
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
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.Auto Trait Implementations§
impl Freeze for FileAssetReader
impl RefUnwindSafe for FileAssetReader
impl Send for FileAssetReader
impl Sync for FileAssetReader
impl Unpin for FileAssetReader
impl UnwindSafe for FileAssetReader
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<GpuImage>) -> U
Return the
T ShaderType for self. When used in AsBindGroup
derives, it is safe to assume that all images in self exist.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
Mutably borrows from an owned value. Read more
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>
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>
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)
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)
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
impl<T> DowncastSync for T
source§impl<T> ErasedAssetReader for Twhere
T: AssetReader,
impl<T> ErasedAssetReader for Twhere
T: AssetReader,
source§fn read<'a>(
&'a self,
path: &'a Path,
) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AsyncReadAndSeek + Unpin + Sync + Send + 'a>, AssetReaderError>> + 'a>>
fn read<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AsyncReadAndSeek + Unpin + Sync + Send + '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 AsyncReadAndSeek + Unpin + Sync + Send + 'a>, AssetReaderError>> + 'a>>
fn read_meta<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn AsyncReadAndSeek + Unpin + Sync + Send + '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> + Unpin + Send>, AssetReaderError>> + 'a>>
fn read_directory<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn ConditionalSendFuture<Output = Result<Box<dyn Stream<Item = PathBuf> + Unpin + Send>, 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>>
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>>
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<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> ⓘ
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 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> ⓘ
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