From c4ee47647a5bf1a06ae88ebb9410117c927868ee Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Mon, 12 Oct 2026 01:31:00 -0400 Subject: Major refactor, generate relation traits with macros --- crates/elfmind/src/character.rs | 21 --- crates/elfmind/src/item.rs | 6 - crates/elfmind/src/knowledge.rs | 187 +++++++++++---------- crates/elfmind/src/knowledge/relation.rs | 243 +-------------------------- crates/elfmind/src/knowledge/traits.rs | 273 +++++++++++++++++++++++++++++++ crates/elfmind/src/lib.rs | 8 +- crates/elfmind/src/main.rs | 49 +++--- crates/elfmind/src/noun.rs | 19 +++ crates/elfmind/src/noun/character.rs | 41 +++++ crates/elfmind/src/noun/item.rs | 20 +++ crates/elfmind/src/noun/time.rs | 16 ++ crates/elfmind/src/time.rs | 1 - 12 files changed, 490 insertions(+), 394 deletions(-) delete mode 100644 crates/elfmind/src/character.rs delete mode 100644 crates/elfmind/src/item.rs create mode 100644 crates/elfmind/src/knowledge/traits.rs create mode 100644 crates/elfmind/src/noun.rs create mode 100644 crates/elfmind/src/noun/character.rs create mode 100644 crates/elfmind/src/noun/item.rs create mode 100644 crates/elfmind/src/noun/time.rs delete mode 100644 crates/elfmind/src/time.rs (limited to 'crates/elfmind/src') diff --git a/crates/elfmind/src/character.rs b/crates/elfmind/src/character.rs deleted file mode 100644 index bb50605..0000000 --- a/crates/elfmind/src/character.rs +++ /dev/null @@ -1,21 +0,0 @@ -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub enum Character { - Clonk, - Naesten, - Jonze, - Bobo, - Frogrilla, - Hynzzy, - Orbital, - Colin, - Meisaka, - Ctrl, - Antlers, - Tyumici, - Steeledshield, - Creep, - Max, - Hostile, - Owlex, - Penguin, -} diff --git a/crates/elfmind/src/item.rs b/crates/elfmind/src/item.rs deleted file mode 100644 index 5b9182d..0000000 --- a/crates/elfmind/src/item.rs +++ /dev/null @@ -1,6 +0,0 @@ -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub enum Item { - Apple, - BallroomKey, - Lumi, -} diff --git a/crates/elfmind/src/knowledge.rs b/crates/elfmind/src/knowledge.rs index a610328..97ff118 100644 --- a/crates/elfmind/src/knowledge.rs +++ b/crates/elfmind/src/knowledge.rs @@ -1,86 +1,45 @@ -pub mod relation; -pub use relation::*; +pub mod traits; pub use traits::*; +pub mod relation; pub use relation::*; -use crate::time::*; -use crate::item::*; -use crate::character::*; +pub use crate::noun::*; use std::collections::{HashMap, HashSet}; +use std::fmt::Display; use itertools::Itertools; +use strum::IntoDiscriminant; use enum_map::EnumMap; -use strum::IntoDiscriminant; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] -pub struct Var { index: u64 } - -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -pub enum Value { - Var(Var), - Item(Item), - Character(Character), - Time(Time), -} -impl From for Value { fn from(x: Var) -> Self {Value::Var(x)} } -impl From for Value { fn from(x: Item) -> Self {Value::Item(x)} } -impl From for Value { fn from(x: Character) -> Self {Value::Character(x)} } -impl From