summaryrefslogtreecommitdiff
path: root/crates/elfmind/src/main.rs
diff options
context:
space:
mode:
authorLLLL Colonq <llll@colonq>2026-09-11 15:47:34 -0400
committerLLLL Colonq <llll@colonq>2026-09-11 15:47:34 -0400
commit09ff5f929853cc2ba1a1ed7ddb20566cd8fe021d (patch)
tree19738908beef19315def760c9e85e42536cbda7a /crates/elfmind/src/main.rs
parented7819a3c3139a2caaf4e9bcdf0a968b8d3b0069 (diff)
More Datalog
Diffstat (limited to 'crates/elfmind/src/main.rs')
-rw-r--r--crates/elfmind/src/main.rs24
1 files changed, 12 insertions, 12 deletions
diff --git a/crates/elfmind/src/main.rs b/crates/elfmind/src/main.rs
index 748ca9d..cd811f7 100644
--- a/crates/elfmind/src/main.rs
+++ b/crates/elfmind/src/main.rs
@@ -6,44 +6,44 @@ fn main() {
let mut db = Database::default();
db.add_fact(Relation::TimeIs(Hole::Val(6)));
db.add_fact(Relation::TimeIs(Hole::Val(7)));
- db.add_fact(Relation::HasItem(Hole::Val(character::Character::Tyumici), Hole::Val(item::Item::Apple)));
- db.add_fact(Relation::FriendOf(Hole::Val(character::Character::Bobo), Hole::Val(character::Character::Naesten)));
+ db.add_fact(Relation::HasItem((Hole::Val(character::Character::Tyumici), Hole::Val(item::Item::Apple))));
+ db.add_fact(Relation::FriendOf((Hole::Val(character::Character::Bobo), Hole::Val(character::Character::Naesten))));
let vt = ctx.var("time");
let vi = ctx.var("item");
db.add_rule(Rule {
- head: Relation::UsedItemAt(
+ head: Relation::UsedItemAt((
Hole::Val(character::Character::Tyumici),
Hole::Var(vi),
Hole::Var(vt),
- ),
+ )),
body: vec![
Relation::TimeIs(Hole::Var(vt)),
- Relation::HasItem(Hole::Val(character::Character::Tyumici), Hole::Var(vi)),
+ Relation::HasItem((Hole::Val(character::Character::Tyumici), Hole::Var(vi))),
],
});
let vt = ctx.var("time");
let vc = ctx.var("char");
db.add_rule(Rule {
- head: Relation::FriendOf(
+ head: Relation::FriendOf((
Hole::Val(character::Character::Naesten),
Hole::Var(vc),
- ),
+ )),
body: vec![
Relation::TimeIs(Hole::Var(vt)),
- Relation::UsedItemAt(Hole::Var(vc), Hole::Val(item::Item::Apple), Hole::Var(vt)),
+ Relation::UsedItemAt((Hole::Var(vc), Hole::Val(item::Item::Apple), Hole::Var(vt))),
],
});
let vc1 = ctx.var("char");
let vc2 = ctx.var("char");
let vc3 = ctx.var("char");
db.add_rule(Rule {
- head: Relation::FriendOf(
+ head: Relation::FriendOf((
Hole::Var(vc1),
Hole::Var(vc3),
- ),
+ )),
body: vec![
- Relation::FriendOf(Hole::Var(vc1), Hole::Var(vc2)),
- Relation::FriendOf(Hole::Var(vc2), Hole::Var(vc3)),
+ Relation::FriendOf((Hole::Var(vc1), Hole::Var(vc2))),
+ Relation::FriendOf((Hole::Var(vc2), Hole::Var(vc3))),
],
});
db.apply_rules();