Skip to main content

GenieCode

Struct GenieCode 

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

A decoded Game Genie code: an address in $8000-$FFFF, a substitute data byte, and an optional compare byte (present only for 8-character codes).

Implementations§

Source§

impl GenieCode

Source

pub fn new(code: &str) -> Result<Self, GenieError>

Decode a 6- or 8-character Game Genie code.

The input is case-insensitive; code returns the canonical upper-case form.

§Errors

Returns GenieError::InvalidLength if the code is not 6 or 8 characters, or GenieError::InvalidCharacter if it contains a letter outside the Game Genie alphabet.

Source

pub fn code(&self) -> &str

The canonical upper-case code string.

Source

pub const fn addr(&self) -> u16

The PRG address ($8000-$FFFF) this code substitutes.

Source

pub const fn data(&self) -> u8

The substitute data byte.

Source

pub const fn compare(&self) -> Option<u8>

The compare byte (8-character codes only).

Source

pub const fn read(&self, original: u8) -> u8

Apply this code to a byte read from addr.

For a 6-character code the substitute data always replaces original. For an 8-character code the substitution only fires when original equals the compare byte; otherwise the original byte passes through (so the code targets one specific bank).

Trait Implementations§

Source§

impl Clone for GenieCode

Source§

fn clone(&self) -> GenieCode

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for GenieCode

Source§

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

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

impl Display for GenieCode

Source§

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

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

impl PartialEq for GenieCode

Source§

fn eq(&self, other: &GenieCode) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Eq for GenieCode

Source§

impl StructuralPartialEq for GenieCode

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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.