Skip to main content

FsResourceIo

Struct FsResourceIo 

Source
pub struct FsResourceIo;
Expand description

Standard resource IO provider that uses the file system to load the file bytes

Trait Implementations§

Source§

impl Default for FsResourceIo

Source§

fn default() -> FsResourceIo

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

impl ResourceIo for FsResourceIo

Source§

fn read_directory<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Iterator<Item = PathBuf> + Send>, FileError>> + Send + 'a>>

wasm should fallback to the default no-op impl as im not sure if they can directly read a directory

Note: Android directory reading should be possible just I have not created an implementation for this yet

Source§

fn walk_directory<'a>( &'a self, path: &'a Path, max_depth: usize, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn Iterator<Item = PathBuf> + Send>, FileError>> + Send + 'a>>

Android and wasm should fallback to the default no-op impl as they cant be walked with WalkDir

Source§

fn file_reader<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn Future<Output = Result<Box<dyn FileReader>, FileError>> + Send + 'a>>

Only use file reader when not targetting android or wasm

Note: Might be possible to use the Android Asset struct for reading as long as its Send + Sync + ’static (It already implements Debug + Read + Seek)

Source§

fn can_write(&self) -> bool

True if writing to files is possible through this object.
Source§

fn can_read_directories(&self) -> bool

True if reading the content of directories is possible through this object.
Source§

fn load_file<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn Future<Output = Result<Vec<u8>, FileError>> + Send + 'a>>

Attempts to load the file at the provided path returning the entire byte contents of the file or an error
Source§

fn write_file<'a>( &'a self, path: &'a Path, data: Vec<u8>, ) -> Pin<Box<dyn Future<Output = Result<(), FileError>> + Send + 'a>>

Attempts to asynchronously write the given set of bytes to the specified path.
Source§

fn write_file_sync(&self, path: &Path, data: &[u8]) -> Result<(), FileError>

Attempts to synchronously write the given set of bytes to the specified path. This method is optional, on some platforms it may not even be supported (WebAssembly).
Source§

fn create_dir_all_sync(&self, path: &Path) -> Result<(), FileError>

Creates a directory with all subdirectories defined by the specified path.
Source§

fn move_file<'a>( &'a self, source: &'a Path, dest: &'a Path, ) -> Pin<Box<dyn Future<Output = Result<(), FileError>> + Send + 'a>>

Attempts to move a file at the given source path to the given dest path.
Source§

fn delete_file<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn Future<Output = Result<(), FileError>> + Send + 'a>>

Attempts to delete a file at the given path asynchronously.
Source§

fn delete_file_sync(&self, path: &Path) -> Result<(), FileError>

Attempts to delete a file at the given path synchronously.
Source§

fn copy_file<'a>( &'a self, source: &'a Path, dest: &'a Path, ) -> Pin<Box<dyn Future<Output = Result<(), FileError>> + Send + 'a>>

Attempts to copy a file at the given source path to the given dest path.
Source§

fn canonicalize_path<'a>(&'a self, path: &'a Path) -> Result<PathBuf, FileError>

Tries to convert the path to its canonical form (normalize it in other terms), and put the path into a form that is suited for use in methods of this object. Each file should have exactly one canonical path. This method should guarantee correct behaviour for relative paths. Symlinks aren’t mandatory to follow.
Source§

fn is_valid_file_name(&self, name: &OsStr) -> bool

Checks whether the given file name is valid or not.
Source§

fn exists<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'a>>

Used to check whether a path exists
Source§

fn exists_sync(&self, path: &Path) -> bool

Used to check whether a path exists
Source§

fn is_file<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'a>>

Used to check whether a path is a file
Source§

fn is_dir<'a>( &'a self, path: &'a Path, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'a>>

Used to check whether a path is a dir

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> AsyncTaskResult for T
where T: Any + Send + 'static,

Source§

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

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> 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> 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> DowncastSync for T
where T: Any + Send + Sync,

Source§

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

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

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

Converts Arc<Trait> (where Trait: DowncastSync) to Arc<Any>, which can then be 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<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<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T, U> ObjectOrVariant<T> for U

Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

Source§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
Source§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
Source§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
Source§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

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