This commit is contained in:
nora 2023-04-18 15:45:13 +02:00
parent ea398555ac
commit fa77644b0d
11 changed files with 15 additions and 2811 deletions

9
Cargo.lock generated
View file

@ -2,13 +2,6 @@
# It is not intended for manual editing. # It is not intended for manual editing.
version = 3 version = 3
[[package]]
name = "egui-inspect"
version = "0.1.0"
dependencies = [
"egui-inspect-derive",
]
[[package]] [[package]]
name = "egui-inspect-derive" name = "egui-inspect-derive"
version = "0.1.0" version = "0.1.0"
@ -21,7 +14,7 @@ dependencies = [
name = "mantle-diver" name = "mantle-diver"
version = "0.1.0" version = "0.1.0"
dependencies = [ dependencies = [
"egui-inspect", "egui-inspect-derive",
] ]
[[package]] [[package]]

View file

@ -7,8 +7,8 @@ edition = "2021"
[dependencies] [dependencies]
[dependencies.egui-inspect] [dependencies.egui-inspect-derive]
path = "./egui_inspect" path = "./egui-inspect-derive"
#[profile.dev] #[profile.dev]
#incremental = false # Buggy on latest rustc nightly, keeps ICEing #incremental = false # Buggy on latest rustc nightly, keeps ICEing

View file

@ -4,7 +4,7 @@ use quote::quote;
#[proc_macro_derive(Inspect)] #[proc_macro_derive(Inspect)]
pub fn derive_inspect(input: TokenStream) -> TokenStream { pub fn derive_inspect(input: TokenStream) -> TokenStream {
let expanded = quote! { let expanded = quote! {
impl ::egui_inspect::Inspect for GameState { impl Inspect for GameState {
fn inspect_mut(&mut self) { fn inspect_mut(&mut self) {
output_mut(|o| o.copied_text = format!("")); output_mut(|o| o.copied_text = format!(""));
output_mut(|o| o.copied_text = format!("{:?}", self.tile_db)); output_mut(|o| o.copied_text = format!("{:?}", self.tile_db));

View file

@ -1 +0,0 @@
/target

2679
egui_inspect/Cargo.lock generated

File diff suppressed because it is too large Load diff

View file

@ -1,16 +0,0 @@
[package]
name = "egui-inspect"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[features]
derive = ["egui-inspect-derive"]
default = ["derive"]
[dependencies]
egui-inspect-derive = { path = "egui-inspect-derive", optional = true}
[workspace]
members = ["egui-inspect-derive", "testbed"]

View file

@ -1,9 +0,0 @@
#[cfg(feature = "derive")]
pub use egui_inspect_derive as derive;
pub trait Inspect {
fn inspect_mut(&mut self) {
loop {}
}
}
impl Inspect for () {}

View file

@ -1,14 +0,0 @@
[package]
name = "testbed"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies.egui-inspect]
path = ".."
[dependencies]
rand = "0.8.5"
eframe = "0.21.3"
egui = "0.21.0"

View file

@ -1,78 +0,0 @@
use std::fmt::Debug;
use std::marker::PhantomData;
use eframe::{egui, App, Frame, NativeOptions};
use egui_inspect::inspect;
use egui_inspect::{derive::Inspect, Inspect};
use rand::{distributions::Alphanumeric, prelude::SliceRandom, thread_rng, Rng};
struct Testbed {
entities: Vec<GameEntity>,
some_string: String,
}
#[derive(Inspect, Debug)]
struct GameEntity {
name: String,
position: Vector2,
hp: i32,
godmode: bool,
dir: Dir,
#[opaque]
#[allow(dead_code)]
something_opaque: MyOpaque,
#[inspect_with(custom_inspect)]
custom: MyOpaque,
tuple: TupleStruct,
generic: Generic<String>,
phantom: PhantomData<NonInspect>,
unit: (),
}
struct NonInspect;
#[derive(Inspect, Debug)]
struct TupleStruct(u32);
#[derive(Default, Debug)]
struct MyOpaque {
field1: i32,
field2: String,
field3: f32,
}
#[derive(Inspect, Debug)]
struct Generic<T: Inspect> {
field: T,
}
fn custom_inspect(o: &mut MyOpaque, ui: &mut egui::Ui, _id_source: u64) {
loop {}
}
#[derive(Inspect, Clone, Copy, PartialEq, Eq, Debug)]
enum Dir {
North,
East,
South,
West,
}
impl GameEntity {
fn rand() -> Self {
loop {}
}
}
#[derive(Inspect, Debug)]
struct Vector2 {
x: f32,
y: f32,
}
impl Vector2 {
fn rand() -> Self {
loop {}
}
}
impl Default for Testbed {
fn default() -> Self {
loop {}
}
}
impl App for Testbed {
fn update(&mut self, ctx: &egui::Context, frame: &mut Frame) {
loop {}
}
}
fn main() {
loop {}
}

View file

@ -1,5 +1,3 @@
use egui_inspect::Inspect;
extern crate alloc; extern crate alloc;
mod tiles; mod tiles;
@ -12,7 +10,7 @@ impl App {
} }
} }
use egui_inspect::derive::Inspect; use egui_inspect_derive::Inspect;
pub(crate) struct WorldPos {} pub(crate) struct WorldPos {}
@ -45,6 +43,16 @@ fn show(f: &dyn FnMut()) {}
pub struct TileDb { pub struct TileDb {
unknown_bg: tiles::TileDef, unknown_bg: tiles::TileDef,
} }
pub trait Inspect {
fn inspect_mut(&mut self) {
loop {}
}
}
impl Inspect for () {}
impl Inspect for TileDb { impl Inspect for TileDb {
fn inspect_mut(&mut self) { fn inspect_mut(&mut self) {
let _a = &mut self.unknown_bg; let _a = &mut self.unknown_bg;