From a353c48d21d389e37b1b4924e4fd5248d397e58d Mon Sep 17 00:00:00 2001 From: Russell Gilbert Date: Sat, 14 Mar 2026 07:41:19 +0000 Subject: [PATCH] RustyLee: Streamlines system lifecycle and organ commands Removes several `LifeState` variants, focusing on a more essential set of states for the core system. Eliminates various `OrganCommand` protocols that are no longer needed, reducing the overall complexity of inter-organ communication. Adjusts the `Brain`'s main loop to actively process organ messages, simplifying its core operational logic. --- src/rustylee/src/brain.rs | 13 +++++-------- src/rustylee/src/lifecycle.rs | 28 ++++++++++++++-------------- src/rustylee/src/organs/heart.rs | 2 +- src/rustylee/src/protocols.rs | 22 +++++++++++----------- 4 files changed, 31 insertions(+), 34 deletions(-) diff --git a/src/rustylee/src/brain.rs b/src/rustylee/src/brain.rs index 0234280..8201c87 100644 --- a/src/rustylee/src/brain.rs +++ b/src/rustylee/src/brain.rs @@ -1,6 +1,5 @@ use tracing::{debug, info}; use std::sync::mpsc::{Receiver, Sender}; -use std::thread::JoinHandle; use crate::lifecycle::{LifeState, LifecycleCommand, LifecycleCommandResponse, LifecycleReceipt}; use crate::lifecycle::LifeState::{Dying, Buried, Genisys, Dead}; use crate::organs::organ_factory::OrganFactory; @@ -46,16 +45,15 @@ impl Brain { break; } - if self.state == Dead { - self.rest(); - continue; - } - if self.is_ready() { self.request_heart_beat(); } - self.rest() + while let Ok(message) = self.organ_rx.try_recv() { + + } + + self.rest(); } } @@ -91,7 +89,6 @@ impl Brain { fn can_transition_lifecycle(&self, command: &LifecycleCommand) -> bool { - if command.required_state == Buried || command.required_state == Dying { return true } diff --git a/src/rustylee/src/lifecycle.rs b/src/rustylee/src/lifecycle.rs index 87a9e05..99c05dc 100644 --- a/src/rustylee/src/lifecycle.rs +++ b/src/rustylee/src/lifecycle.rs @@ -5,13 +5,13 @@ use std::fmt; pub enum LifeState { Dead, Genisys, - Sleeping, - Wakening, - Awake, - DeepThought, - ActionFocused, - Flight, - Panic, + // Sleeping, + // Wakening, + // Awake, + // DeepThought, + // ActionFocused, + // Flight, + // Panic, Dying, Buried, } @@ -21,13 +21,13 @@ impl fmt::Display for LifeState { let state_str = match self { LifeState::Dead => "Dead", LifeState::Genisys => "In Genesis", - LifeState::Sleeping => "Sleeping", - LifeState::Wakening => "Wakening", - LifeState::Awake => "Fully Awake", - LifeState::DeepThought => "In Deep Thought", - LifeState::ActionFocused => "Action Focused", - LifeState::Flight => "In Flight", - LifeState::Panic => "PANIC!", + // LifeState::Sleeping => "Sleeping", + // LifeState::Wakening => "Wakening", + // LifeState::Awake => "Fully Awake", + // LifeState::DeepThought => "In Deep Thought", + // LifeState::ActionFocused => "Action Focused", + // LifeState::Flight => "In Flight", + // LifeState::Panic => "PANIC!", LifeState::Dying => "Dying", LifeState::Buried => "Buried", }; diff --git a/src/rustylee/src/organs/heart.rs b/src/rustylee/src/organs/heart.rs index f071ef5..8cf1afd 100644 --- a/src/rustylee/src/organs/heart.rs +++ b/src/rustylee/src/organs/heart.rs @@ -33,7 +33,7 @@ impl Heart { match envelope.command { OrganCommand::Beat(_) => { - if (self.ready_to_beat()) { + if self.ready_to_beat() { self.beat(); } } diff --git a/src/rustylee/src/protocols.rs b/src/rustylee/src/protocols.rs index 1eb05a1..5e3bc9b 100644 --- a/src/rustylee/src/protocols.rs +++ b/src/rustylee/src/protocols.rs @@ -2,18 +2,18 @@ use crate::coordinates::Point3D; #[derive(Debug)] pub enum OrganCommand { - Sleep, - Waken, - Pause, - Resume, + // Sleep, + // Waken, + // Pause, + // Resume, Beat (u32), - ChangeSpeed (u32), - GoFaster(u32), - GoSlower(u32), - MoveTo { - relative_to_center: Point3D, - speed: u32 - } + // ChangeSpeed (u32), + // GoFaster(u32), + // GoSlower(u32), + // MoveTo { + // relative_to_center: Point3D, + // speed: u32 + // } } #[derive(Debug)]