Struct Object

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

A RGBDS object file.

Implementations§

Source§

impl Object

Source

pub fn read_from(input: impl Read) -> Result<Self, Error>

Reads a serialized object.

§Errors

This function returns any errors that occurred while reading data, as well as if the object data itself cannot be deserialized. Note that not all consistency checks are performed when reading the file; for example, RPN expressions may be invalid, the file stack node tree may be malformed, etc.

Note that maximum upwards compatibility is assumed: for example, currently, RPN data is parsed using the v9 r8 spec, even if the file reports an earlier revision. This should change in the future.

Source

pub fn version(&self) -> u8

The object’s version.

Source

pub fn revision(&self) -> u32

The object’s revision.

Source

pub fn node(&self, id: u32) -> Option<&Node>

Retrieves one of the object’s file stack nodes by ID. Returns None if the ID is invalid (too large).

Source

pub fn walk_nodes<E, F>( &self, id: u32, callback: &mut F, ) -> Result<(), NodeWalkError<E>>
where F: FnMut(&Node) -> Result<(), NodeWalkError<E>>,

Walks the node tree, from its root up to the node with the given ID, running a callback on each node encountered.

The functon may return an error, which aborts the walk. If the function does not fail, you can (and probably will have to) use Infallible:

object.walk_nodes::<Infallible, _>(0, &mut |node| {
    println!("{node:?}");
    Ok(())
});
Source

pub fn symbols(&self) -> &[Symbol]

The object’s symbols.

Source

pub fn sections(&self) -> &[Section]

The object’s sections.

Source

pub fn assertions(&self) -> &[Assertion]

The object’s assertions.

Trait Implementations§

Source§

impl Debug for Object

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Object

§

impl RefUnwindSafe for Object

§

impl Send for Object

§

impl Sync for Object

§

impl Unpin for Object

§

impl UnwindSafe for Object

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.