From ef10ab599889d2e040f74d5a1914b7a0675ac37c Mon Sep 17 00:00:00 2001 From: Russell Gilbert Date: Thu, 26 Mar 2026 14:22:13 +0000 Subject: [PATCH] Adds parent ID to LedPump Introduces a `parent_organ_id` field to the `LedPump` struct and updates its constructor. This establishes a clear hierarchical link, allowing a `LedPump` instance to identify its containing organ. Additionally, changes the `last_beat` field type from `u128` to `u64` for optimized storage of beat tracking data. --- src/rustylee/src/organs/led_pump.rs | 6 ++++-- src/rustylee/src/organs/organ_factory.rs | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/rustylee/src/organs/led_pump.rs b/src/rustylee/src/organs/led_pump.rs index 06972a0..e72b696 100644 --- a/src/rustylee/src/organs/led_pump.rs +++ b/src/rustylee/src/organs/led_pump.rs @@ -4,7 +4,8 @@ use crate::protocols::{OrganCommand, OrganCommandEnvelope, OrganResponse}; pub struct LedPump { id: u32, - last_beat: u128, + parent_organ_id: u32, + last_beat: u64, } impl_identifiable!(LedPump, { @@ -19,9 +20,10 @@ impl_identifiable!(LedPump, { }); impl LedPump { - pub fn new(id: u32) -> Self { + pub fn new(id: u32, parent_organ_id: u32) -> Self { Self { id, + parent_organ_id, last_beat: 0 } } diff --git a/src/rustylee/src/organs/organ_factory.rs b/src/rustylee/src/organs/organ_factory.rs index 4cd9094..4bec075 100644 --- a/src/rustylee/src/organs/organ_factory.rs +++ b/src/rustylee/src/organs/organ_factory.rs @@ -56,10 +56,9 @@ impl OrganFactory { brain_command_to_organ_rx, feedback_to_brain_tx ); - - + let last_parenchyma_id = organ_id; - let led_pump = LedPump::new(OrganFactory::next_parenchyma_id(last_parenchyma_id)); + let led_pump = LedPump::new(OrganFactory::next_parenchyma_id(last_parenchyma_id), organ_id); heart.add_parenchyma(Box::new(led_pump)); heart.start(); });