egui_memory_editor

Crates.ioegui_memory_editor
lib.rsegui_memory_editor
version0.2.10
sourcesrc
created_at2021-02-10 17:16:27.695263
updated_at2024-08-03 11:56:04.205913
descriptionA simple memory editor for the egui library
homepagehttps://github.com/Hirtol/egui_memory_editor
repositoryhttps://github.com/Hirtol/egui_memory_editor
max_upload_size
id353314
size159,991
(Hirtol)

documentation

README

Egui Memory Editor

Crates io link Documentation on docs.rs

This is a simple memory editor/viewer utility for the immediate mode UI library egui

screenshot

Features

  • Multiple memory regions with different address ranges can be created.
  • Can jump to an arbitrary address using the goto functions.
  • Can select certain values in the main UI by right-clicking, which you can then see in the Data Preview section.
  • Can have an optional write function to allow editing fields by left clicking on them.

Usage

It's best to look at the example in the examples/ folder, but one can initialise the editor with any struct of their choosing.

For example, a custom memory struct:

let mut memory = Memory::new();
// Create a memory editor with a variety of ranges, need at least one, but can be as many as you want.
let mut mem_editor = MemoryEditor::new()
.with_address_range("All", 0..0xFFFF)
.with_address_range("IO", 0xFF00..0xFF80)
.with_window_title("Hello Editor!");

// In your egui rendering simply include the following.
// The write function is optional, if you don't set it the UI will be in read-only mode.
let mut is_open = true;
mem_editor.window_ui(
    ctx,
    &mut is_open,
    &mut memory,
    |mem, address| mem.read_value(address).into(),
    |mem, address, val| mem.write_value(address, val),
);

Running example

To run the example do the following:

  1. git clone https://github.com/Hirtol/egui_memory_editor
  2. cd egui_memory_editor
  3. cargo run --example simple --release

Feature Showcase

gif

Commit count: 135

cargo fmt