File

Struct File 

Source
pub struct File<'a> { /* private fields */ }
Expand description

A file loaded from ROM or data dir into the memory.

Returned by [rom::load] and [data::load] which requires a pre-allocated buffer of the right size. If the file size is deterimed dynamically, you might want to use [rom::load_buf] and [data::load_buf] instead (which will take care of the dynamic allocation).

Implementations§

Source§

impl<'a> File<'a>

Source

pub unsafe fn from_bytes(b: &'a [u8]) -> Self

Construct File from raw bytes.

The main purpose of this function is to support convering File to and from “basic” types, which might be required for implementing some language interpreters (Lua, Python, etc) for Firefly in Rust.

§Safety

This function allows bypassing type safety and constructing Image and Font in runtime. Don’t do that. Relying on internal representation of file formats might make your app incompatible with future Firefly runtimes. If you need to modify an in-memory image, use Canvas instead.

Source

pub const fn data(&self) -> &[u8]

Access the raw data in the file.

Source

pub fn as_bytes(&self) -> &[u8]

Alias for File::data.

Source

pub const fn as_font(&self) -> Font<'_>

Interpret the file as a font.

Source

pub const fn as_image(&self) -> Image<'_>

Interpret the file as an image.

Trait Implementations§

Source§

impl<'a> From<File<'a>> for Font<'a>

Source§

fn from(value: File<'a>) -> Self

Converts to this type from the input type.
Source§

impl<'a> From<File<'a>> for Image<'a>

Source§

fn from(value: File<'a>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a> Freeze for File<'a>

§

impl<'a> RefUnwindSafe for File<'a>

§

impl<'a> Send for File<'a>

§

impl<'a> Sync for File<'a>

§

impl<'a> Unpin for File<'a>

§

impl<'a> UnwindSafe for File<'a>

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

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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