From 09ff5f929853cc2ba1a1ed7ddb20566cd8fe021d Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Fri, 11 Sep 2026 15:47:34 -0400 Subject: More Datalog --- crates/elfmind/src/knowledge.rs | 74 +++----------- crates/elfmind/src/knowledge/relation.rs | 163 +++++++++++++++++++++++++++++++ crates/elfmind/src/lib.rs | 1 + crates/elfmind/src/main.rs | 24 ++--- crates/elfmind/src/time.rs | 1 + 5 files changed, 190 insertions(+), 73 deletions(-) create mode 100644 crates/elfmind/src/knowledge/relation.rs create mode 100644 crates/elfmind/src/time.rs (limited to 'crates/elfmind/src') diff --git a/crates/elfmind/src/knowledge.rs b/crates/elfmind/src/knowledge.rs index 3b90dee..cbcce28 100644 --- a/crates/elfmind/src/knowledge.rs +++ b/crates/elfmind/src/knowledge.rs @@ -1,12 +1,15 @@ -use std::collections::{HashMap, HashSet}; -use itertools::Itertools; +pub mod relation; +pub use relation::*; -use enum_map::{Enum, EnumMap}; +use crate::time::*; +use crate::item::*; +use crate::character::*; -use crate::item::Item; -use crate::character::Character; +use std::collections::{HashMap, HashSet}; +use itertools::Itertools; -type Time = u64; +use enum_map::EnumMap; +use strum::IntoDiscriminant; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct Var { index: u64 } @@ -100,57 +103,6 @@ impl> Hole { } } -#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Enum)] -pub enum RelationSort { - HasItem, - UsedItemAt, - TimeIs, - FriendOf, -} - -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub enum Relation { - HasItem(Hole, Hole), - UsedItemAt(Hole, Hole, Hole